リストを表示する際に便利なListViewというコントロールがあります。

今回はこのListViewのイベント・メソッドでの書き方などについてまとめてみました。

かりまたかりまた

ListViewコントロールのプロパティについては以下の記事で纏めています。

ListViewのPublicイベント一覧

ItemAppearingイベント
ItemDisappearingイベント
ItemSelectedイベント
ItemTappedイベント
Refreshingイベント

ListViewのイベントを使ってみる

りんちゃんりんちゃん

イベントをつかってみるのにゃ~。

ItemAppearingイベント・ItemDisappearingイベント

かりまたかりまた

ItemAppearingイベントは読んで字の如く、ListViewコントロールの表示時に項目が追加された際に発火するイベントです。MainPage.xamlは以下の様に記述してください。


かりまたかりまた

MainPage.xaml.csを以下の様に書いてください。


Windows8.1AndroidiPhone
かりまたかりまた

ステップ実行で追ってみると分かりますが、ItemsSourceプロパティに追加したタイミングではなく、実際に描画するタイミングで1項目ずつに対してItemAppearingイベントが発火しているようですね。なのでこのプログラムでは5回のItemAppearingイベントが発火しています。

かりまたかりまた

同様にして、ItemDisappearingイベントも削除された項目数分発火します。

ItemSelectedイベント・ItemTappedイベント

りんちゃんりんちゃん

ItemSelectedイベントListViewコントロールの項目が選択された際に発火するイベントです。


りんちゃんりんちゃん

コードビハインドはこうしたにゃ~。


Windows8.1AndroidiPhone

ItemSelectedイベント・ItemTappedイベントの違い

かりまたかりまた

上のコードをステップ実行してみると分かりますが、ItemSelectedイベントが発火した後にItemTappedイベントが発火されます。

かりまたかりまた

また、ItemSelectedイベントは前回と同じ項目を選択した場合に発火されないが、ItemTappedイベントは項目がタップされれば必ず発火します。

かりまたかりまた

ItemTappedイベントに関しては、Groupの情報を持っています。この情報を使った例を出そうと試みましたが、上手く使いこなせなかったのでここでは割愛させて頂きます。

Refreshingイベント

りんちゃんりんちゃん

Refreshingイベントはリフレッシュ時に発火するイベントだにゃ~。リフレッシュを起こす際には、IsPullToRefreshEnabledプロパティIsRefreshingプロパティを使うと良いにゃ~。

りんちゃんりんちゃん

IsPullToRefreshEnabledプロパティは引っ張って更新させるかどうかを設定するにゃ~。IsRefreshingプロパティは更新が完了したかどうかを設定できるのにゃ~。引っ張って更新させるようにして、2秒後に更新を止めるプログラムを書いてみるのにゃ~。


りんちゃんりんちゃん

コードビハインドには以下のメソッドを追加するにゃ~。


AndroidiPhone

ListViewのPublicメソッド一覧

BeginRefresh()メソッド
EndRefresh()メソッド
ScrollTo(Object, ScrollToPosition, Boolean)メソッド
ScrollTo(Object, Object, ScrollToPosition, Boolean)メソッド

ListViewのメソッドを使ってみる

りんちゃんりんちゃん

メソッドをつかってみるのにゃ~。

BeginRefreshメソッド・EndRefreshメソッド

りんちゃんりんちゃん

BeginRefreshメソッドEndRefreshメソッドを使うことでリフレッシュ状態を切り替えられるにゃ~。MainPage.xamlは以下の様にしたにゃ~。


りんちゃんりんちゃん

MainPage.xamlは以下の様にするにゃ~。


AndroidiPhone

ScrollToメソッド

りんちゃんりんちゃん

ListView内の特定の項目までスクロールするメソッドだにゃ~。オーバーロードが二つあるから、それぞれを紹介するのにゃ~。

ScrollTo(Object, ScrollToPosition, Boolean)メソッド

りんちゃんりんちゃん

ScrollTo(Object, ScrollToPosition, Boolean)メソッドは指定した項目までスクロールしてくれるメソッドにゃ~。どの項目までスクロールするのか(第一引数)、スクロール後の位置はどこにするのか(第二引数)、アニメーションを使ってスクロールするのか(第三引数)をそれぞれ設定できるのにゃ~。


りんちゃんりんちゃん

MainPage.xaml.csは以下のようにするのにゃ~。


Windows8.1AndroidiPhone
引数説明
第一引数(Object)どの項目までスクロールするのかを設定
第二引数(ScrollToPosition)スクロール後の位置はどこにするのかを設定

設定できる位置は以下の通り

・Center … スクロールして指定した項目が画面中央に表示します。

・End … スクロールして指定した項目が画面下に表示します。

・MakeVisible … スクロールして、指定したリスト項目を表示します。

・Start … スクロールして指定した項目が画面上に表示します。

第三引数(Boolean)スクロール時にアニメーションを使用するかを設定

ScrollTo(Object, Object, ScrollToPosition, Boolean)メソッド

※このコードを実行しても意図した結果は得られません。
りんちゃんりんちゃん

ScrollTo(Object, Object, ScrollToPosition, Boolean)メソッドは一つ引数が増えて、グループを指定できるのにゃ~。


りんちゃんりんちゃん

コードビハインドには以下の様にかくにゃ~。


かりまたかりまた

と、このように書けば指定したグループの指定した名前の項目にスクロールされると思ったんですが、実際には上手くいっていません。現在調査中です。分かる方がいらっしゃれば教えてください。

ListViewのプロパティについて

かりまたかりまた

ListViewのプロパティについては以下の記事をご覧ください。