我在虚拟模式下使用 ListView 类,以便 RetrieveVirtualItem 事件从独立的数据结构中提取项目。当我想对列表项进行主要编辑时,我会:
listView.BeginUpdate();
try {
[code to reset backing data structure]
listView.VirtualListSize = backingDataStructure.Count;
}
finally {
listView.EndUpdate();
}
但是,这似乎无法正确刷新此 UI(有时不会显示添加到后备存储的新条目)。执行此操作的正确方法是什么?
最佳答案
我无意中遇到了这个老问题,因为我有同样的问题,而 BeginUpdate() 和 EndUpdate() 根本不起作用。未能在互联网上找到可行的解决方案,但我找到了一个可行的假设解决方案(至少就我而言)。
将 ListView 的 VirtualListSize 属性设置为 0,然后返回您希望控件显示的实际项目数。例如。
ListView.VirtualListSize = 0;
ListView.VirtualListSize = 12345;
关于c# - 如何在虚拟模式下正确 "refresh"一个 winforms ListView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22202759/