如何在虚拟模式下向ListView添加/删除项目?

时间:2010-03-26 18:41:17

标签: c# .net winforms listview objectlistview

如果我在虚拟模式下使用ListView,那么,据我所知,列表视图仅跟踪列表中的少量项目。当用户滚动时,它会动态检索需要从虚拟列表中显示的项目。

但是如果在主列表中添加或删除了某个项目呢?如果在列表视图显示的索引范围之外添加/删除项目,那么我将假设当用户滚动到该索引时列表视图将显示添加/缺失的项目。它是否正确?但是,如果在用户当前正在查看的索引范围中添加/删除项目,该怎么办?如何触发列表视图以刷新当前正在查看的项目以显示新项目/缺失项目?

仅供参考:如果有任何不同,我正在使用ObjectListView

1 个答案:

答案 0 :(得分:8)

虚拟列表对您的项目列表一无所知。它不会跟踪它们,甚至不是一小部分。它只询问“你想在第n行显示什么?”

如果您的主列表发生更改,您只需重绘列表即可。 Invalidate()会为您做到这一点。列表视图将再次询问您应该在控件中可见的每一行显示的内容。

如果您正在使用ObjectListView,您是否考虑过使用FastObjectListView,它可以为您提供虚拟列表的速度优势以及普通ObjectListView的易用性?