Mise à jour des icônes dans un ObjectListView
-
25-09-2019 - |
Question
J'utilise un TreeListView (un sous type de ObjectListView ) dans mon Projet en cours. Chaque élément de la liste est donnée une icône, mais l'icône varie en fonction de l'état de l'élément. Par exemple, si l'élément est en lecture seule que je veux utiliser une icône avec un petit symbole de verrouillage.
Lorsque les éléments sont d'abord ajoutés au TreeListView les icônes sont correctement montrent, encore plus tard, lorsque l'état d'un élément change les icônes ne sont pas mises à jour. Comment puis-je forcer le contrôle de régénérer toutes les icônes?
La solution
Depuis l'icône est obtenu lorsque le ImageGetter pour la première colonne est appelée, et puisque ce n'est appelée généralement lorsque les lignes régénèrent, il semble que vous pouvez simplement appeler BuildList
et forcer toutes les lignes à reconstruire. Cela peut être coûteux, mais, selon la complexité et le nombre de lignes.
Une meilleure solution, si possible, serait d'appeler RefreshItem
ou RefreshObject
dès que vous connaissez les données ont changé. Cela vous oblige à connaître soit la OLVListItem
spécifique (lignes) qui ont besoin de leurs icônes mises à jour, ou les objets modèle sous-jacent qui a changé (et serait donc, l'icone différent ont été ses lignes associées reconstruites).