我使用ListView在列表中显示项目。用户可以自己选择项目,或使用某些“预选键”来选择具有指定属性的项目。WPF Listview - 选择'field of view'外的项目
要检查的项目我使用类似的东西:
for(int i;i<MyListView.Items.Count;++i)
{
if(/*... Check if the items should be selected ...*/)
(MyListView.ItemContainerGenerator.ContainerFromIndex(i) as ListViewItem).IsSelected = true;
}
这完全适用的项目,是在excecution时可见。但对于不可见的项目,ContainerFromIndex()返回null。我听说这与虚拟化有关,并且该列表不知道“视野”上的项目是否有利或不利。但是,如果您手动选择它们,可能会在列表的“视野”旁边选择列表中的项目?
以及如何选择“视野”以外的项目?我认为这一定是可能的。
感谢您的帮助, 商标
但是,怎么可能呢,当我选择一个项目时,将它滚动到视线之外并且向后滚动,它仍然被选中?某处必须存储这些信息。这真的不可访问吗? – Marks 2010-05-11 11:47:54
那么,选定的项目可以通过'SelectedItems'访问。它返回一个IList,它有一个Add()方法。你尝试添加你想要选择的项目吗?这意味着你必须从你在ListView中显示的任何集合中添加项目到这个IList。可能没有办法只使用索引来完成它。 – 2010-05-11 19:04:51
感谢这个答案,这一直让我疯狂。 – Mark 2013-04-11 15:48:05