2

ICollectionViewを使用して、ListView内のアイテムのリストを表示しています。解決策を見つけることができないように思われる問題に遭遇しました。

マウスのみを使用する限り、選択は正常に機能します。常に最新の情報を表示するために、ICollectionView.Refresh()メソッドを時々使用します。ただし、これにより、キーボードの矢印を使用してアイテムのリストをナビゲートするときに問題が発生します。

現在のSelectedIndexがどの位置にあるかに関係なく、次に矢印キーを押したときにRefresh()を呼び出すとすぐに、選択されたアイテムはListViewの位置0にあるアイテムになります。

誰かが以前にこの問題に遭遇し、この問題の解決策を見つけたことがありますか?

4

2 に答える 2

0

リストビューを更新するには、次のようにします。

//store the selected items
ListView.SelectedListViewItemCollection collection;
collection = listView1.SelectedItems;

// refresh the list view
listView1.Refresh();

//now select them again
foreach (ListViewItem item in collection)
    item.Selected = true;
于 2012-09-16T20:31:55.220 に答える
0

ICollectionView.Refresh() を呼び出す代わりに、コレクションで使用するクラスに INotifyPropertyChanged インターフェイスを実装できます。表示されたプロパティのいずれかが変更されるたびに、PropertyChanged を呼び出します。

于 2013-01-10T13:46:32.860 に答える