【VB.NET】【WPF】ListBox / ListView で複数の選択項目のインデックスを取得する

WPF の ListBox / ListView の場合、選択されている項目が1つのときは、そのインデックスを取得するための .SelectedIndex という分かりやすいプロパティがある。

では複数の項目が選択されているときはどうするか?

Forms の ListBox / ListView であれば .SelectedIndices というプロパティがあるのだが、WPF の ListBox / ListView にはそれが無いので、下記のようにする。

 

インデックスをソートしている理由

ListView の ItemsSource に ObservableCollection 型のリストをバインドして、ListView のデータを(列ヘッダーのクリック等により)ソートできるようにしている場合、上記のコードで取得したインデックス番号が小さい値から大きい値に並んでいるとは限らない。

従って、インデックス順に処理したいようなコードを上記のコードに続けて書く場合は、事前にインデックスをソートしておく必要がある。

コメントの投稿

avatar
  購読する  
通知を受け取る対象