3

我有一个带有大型 ListView 的应用程序,它非常慢,所以我正在实现 VirtualMode。MSDN 似乎没有涵盖我将如何在列表视图中间添加和删除新项目。

例如,ListView 有 1000 个项目(表示磁盘上的文件),在 ListView 的初始填充之后(通过 RetrieveVirtualItem 事件),一些文件将被删除并添加一些文件,因此 VirtualListSize 在更新后甚至可能相同。

问题 1)我如何对 ListView 说“这些项目已被更改/删除”以便它重新查询?

此外,一些文件只是更改,我想在列表视图中反映它们的更改状态。

问题 2)鉴于 VirtualMode 不允许我访问我之前使用的 Items 集合(我在该集合上使用了 ContainsKey 方法),我如何在列表视图中找到一个项目。

听起来很简单,但我自己看不到。非常感谢帮助。

瑞安

4

1 回答 1

3

要添加或删除项目,simplay 将 VirtualListSize 设置为项目的总数。要刷新单个项目,请使用 RedrawItems。

要定位特定项目,请使用已有的容器,不要返回 ListView。列表中的索引应与 ListView 中的项目匹配。

于 2008-10-22T00:05:24.613 回答