我有一个ListView
包含100个项目,我们可以根据所选项目执行某些活动。我使用EnsureVisible()
方法调整了可见性,并使用ListView
更新时间来更新数据。
我现在面临的问题是,如果我选择列表中的第一项,然后我开始向下翻页(也许选择21日,59日 在这个选择期间,我可以突出显示第1个,第24个和第2个 在这种情况下,当控件突然刷新页面时,只有第一个选择保留焦点而我丢失了我的其他选择并且必须单独或更快地再次通过。
所以我的问题是我如何选择多个项目并在ListView
在某个时间间隔内刷新时执行操作以填充数据,但使用了EnsureVisible()
?
这是我的现有代码:
if (_listviewFirst.SelectedItems.Count > 0)
{
_listviewFirst.SelectedItems[_listviewFirst.SelectedItems.Count - 1].EnsureVisible();
_listviewFirst.SelectedItems[0].EnsureVisible();
}
答案 0 :(得分:1)
我会使用ListView.ItemSelectionChanged
(MSDN)事件,并从List
个所选项目中添加/删除项目(或其引用)。刷新控件后,您应该迭代所选项目并将项目更新为ListView
中选定的项目。
您将能够利用事件处理程序中的e.IsSelected
和e.Item
或e.ItemIndex
来执行此操作。
我根本不会使用EnsureVisible
。