9

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

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

仅供参考:如果这有什么不同,我正在使用ObjectListView 。

4

1 回答 1

8

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

如果您的主列表发生变化,您需要做的就是重新绘制列表。Invalidate()会为你做的。然后列表视图将再次询问您在控件中可见的每一行应该显示什么。

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

于 2010-03-27T00:04:49.227 回答