【问题标题】:How do I update a WinForms ListView when using VirtualMode=True?使用 VirtualMode=True 时如何更新 WinForms ListView?
【发布时间】:2010-09-18 10:05:39
【问题描述】:

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

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

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

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

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

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

瑞恩

【问题讨论】:

    标签: .net winforms listview virtualmode


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-03-22
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      • 1970-01-01
      • 2016-06-13
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多