Cha*_*ion 5 c# listview winforms
我在虚拟模式下使用 ListView 类,以便 RetrieveVirtualItem 事件从独立的数据结构中提取项目。当我想对列表项进行主要编辑时,我会这样做:
listView.BeginUpdate();
try {
[code to reset backing data structure]
listView.VirtualListSize = backingDataStructure.Count;
}
finally {
listView.EndUpdate();
}
Run Code Online (Sandbox Code Playgroud)
但是,这似乎无法正确刷新此 UI(有时添加到后备存储的新条目不会显示)。执行此操作的正确方法是什么?
您已经使用了正确的模式,因此问题可能出在代码的不同部分。但是,为了后代,我在这里重申这一模式。引用Hans Passant\xe2\x80\x99s 的评论:
\n\n\n\n
EndUpdate()应该始终足以重新绘制ListView,从而RetrieveVirtualItem再次触发事件。
确保BeginUpdate()在将虚拟支持切换到新数据之前以及EndUpdate()完成之后进行呼叫。EndUpdate()独自一人什么也做不了。使用这个模式:
listView.BeginUpdate();\ncurrentBacking = newBacking;\nlistView.EndUpdate();\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3492 次 |
| 最近记录: |