2

我正在使用 ICollectionView 来显示 ListView 中的项目列表。我遇到了一个我似乎无法找到解决方案的问题。

只要只使用鼠标,选择就可以正常工作。为了始终显示最新信息,我不时使用 ICollectionView.Refresh() 方法。但是,当使用键盘箭头浏览项目列表时,这会导致问题。

无论当前 SelectedIndex 位于哪个位置,只要我在下一次按下箭头键时调用 Refresh(),所选项目就是 ListView 位置 0 的项目。

有没有人遇到过这个问题并找到了解决这个问题的方法?

4

2 回答 2

0

您可以在集合中使用的类中实现 INotifyPropertyChanged 接口,而不是调用 ICollectionView.Refresh()。每当显示的任何属性发生更改时,调用 PropertyChanged。

于 2013-01-10T13:46:32.860 回答
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 回答