【发布时间】:2012-05-17 18:18:24
【问题描述】:
对于Winforms App中的Virtual ListView控件,RetrieveVirtualItem事件的ALL的作用是什么?
场景:有一个 Dictionary 对象充当我的 ListView 缓存。它的项目显示在 ListView 上。单击列时,缓存字典在内存中排序,ListView 被 Refresh()ed。 UI上的效果,ListView排序不错。 :)
但我想了解 RetrieveVirtualItem 事件的作用是什么,它在 Refresh() 上触发。
在 RetrieveVirtualItem 事件处理程序 [别人的代码, :( ] 中完成以下操作:
- 基于
RetrieveVirtualItemEventArgs.ItemIndex,从Cache中获取消息 - 设置
RetrieveVirtualItemEventArgs.Item= 上面检索到的项目
似乎在事件处理程序中所做的事情很重要,因为如果我把它拿出来,ListView 会哭。这次活动有什么意义?
编辑
或者让我重新表述这个问题......我担心的是,为什么在排序之后(和RetrieveVirtualItem 事件处理程序),所选项目仍保留在排序之前的位置。即,如果我选择第 5 项并排序,并且如果排序使该项目成为最后一项,我希望在排序之后选择最后一项。但在我的情况下,排序后选择了第 5 个项目。那么RetrieveVirtualItemWRT选中项的默认行为是什么?
【问题讨论】:
标签: c# winforms listview .net-3.5