更新 ObjectListView 中的图标

发布于 2024-09-05 09:01:19 字数 279 浏览 10 评论 0原文

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

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

I'm using an TreeListView (a sub type of ObjectListView) in my current project. Each item in the list is given an icon, but the icon my vary depending on the state of the item. For example if the item is readonly I want to use an icon with a little lock symbol.

When the items are first added to the TreeListView the icons are show correctly, yet later when the state of an item changes the icons are not updating. How do I force the control to regenerate all the icons?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

灵芸 2024-09-12 09:01:19

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

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

Since the icon is gotten when the ImageGetter for the first column is called, and since that is only called typically when the rows regenerate, then it seems like you could simply call BuildList and force all rows to rebuild. This might be expensive, though, depending on the complexity and number of rows.

A better solution, if possible, would be to call RefreshItem or RefreshObject as soon as you know data has changed. This requires you to know either the specific OLVListItem (rows) that need their icons updated, or the underlying model objects that changed (and thus would cause the icon to differ were its associated rows rebuilt).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文