更新ObjectListView中的图标

时间:2010-06-09 00:15:11

标签: c# winforms objectlistview treelistview

我在当前项目中使用了TreeListView(ObjectListView的子类型)。列表中的每个项目都有一个图标,但图标my会根据项目的状态而有所不同。例如,如果项目是只读的,我想使用带有小锁符号的图标。

当项目首次添加到TreeListView时,图标会正确显示,但稍后当项目状态发生变化时,图标不会更新。如何强制控件重新生成所有图标?

1 个答案:

答案 0 :(得分:1)

由于在调用第一列的ImageGetter时获取了图标,并且由于只在行重新生成时才会调用该图标,因此您似乎可以简单地调用BuildList并强制重建所有行。但这可能很昂贵,具体取决于复杂性和行数。

如果可能,更好的解决方案是在您知道数据发生变化后立即致电RefreshItemRefreshObject。这需要您了解需要更新其图标的特定OLVListItem(行)或更改的基础模型对象(因此,如果重建的关联行会导致图标不同)。