C# 如何在listview中使用EnsureRevible方法?
我有一个C# 如何在listview中使用EnsureRevible方法?,c#,.net,listview,C#,.net,Listview,我有一个列表视图包含100个项目,我们可以根据所选项目执行某些活动。我使用了enseRevisible()方法来调整可见性,并且我的ListView会不时刷新以更新数据 现在我面临的问题是,如果我选择列表中的第一项,我就会开始向下翻页(可能选择第21、59项) 在这次选择中,我可以突出显示第1、第24和第75条 第56次,在本例中,当控件突然刷新页面时,只有第一个选定项保留焦点,我丢失了其他选择项,必须单独或更快地再次执行 因此,我的问题是如何选择多个项目并执行操作,而ListView在特定时间
列表视图
包含100个项目,我们可以根据所选项目执行某些活动。我使用了enseRevisible()
方法来调整可见性,并且我的ListView
会不时刷新以更新数据
现在我面临的问题是,如果我选择列表中的第一项,我就会开始向下翻页(可能选择第21、59项)
在这次选择中,我可以突出显示第1、第24和第75条
第56次,在本例中,当控件突然刷新页面时,只有第一个选定项保留焦点,我丢失了其他选择项,必须单独或更快地再次执行
因此,我的问题是如何选择多个项目并执行操作,而ListView
在特定时间间隔内刷新以填充数据,尽管使用了ensurerevisible()
这是我的现有代码:
if (_listviewFirst.SelectedItems.Count > 0)
{
_listviewFirst.SelectedItems[_listviewFirst.SelectedItems.Count - 1].EnsureVisible();
_listviewFirst.SelectedItems[0].EnsureVisible();
}
我将使用
ListView.ItemSelectionChanged
()事件,从所选项目的列表中添加/删除项目(或其引用)。刷新控件后,您应该迭代选定的项,并将这些项更新为列表视图中的选定项
您将能够利用事件处理程序中的e.IsSelected
和e.Item
或e.ItemIndex
来执行此操作
我根本不会使用ensureavible
。也许您应该在每个选定项目之后的某个位置保存一个项目键值列表。然后刷新后重新选择该选项list@Boomer我可以使用ListView.TopItem属性吗?在这些场景中,我不知道它是否可以工作,如果可以,我如何使用?为什么控件突然刷新?你可以试着用复选框代替吗@Tony Day表示,它正在动态填充数据