C# Force ListBox pour mettre à jour les éléments
Je suis sous-classement de la norme de contrôle ListBox. - Je être averti de toute modification des éléments ajoutés à la liste. La tâche est de mettre à jour le texte indiqué par la zone de liste pour l'évolution de l'élément.
Je suis conscient que je pourrais tout simplement supprimer le changement de l'élément et l'ajouter à nouveau, mais cela ne semble pas préférable, pour des raisons évidentes.
- double possible de Comment puis-je faire une ListBox actualiser son texte d'un élément?
- Ce n'est pas seulement un duplicata de la question mentionnée ci-dessus — l'autre question a beaucoup plus de réponses, trop.
InformationsquelleAutor mafu | 2009-02-06
Vous devez vous connecter pour publier un commentaire.
Malheureusement, la liaison de données dans
ListView
ne prend pas en charge régulière (item) changement de notification d'événements (FooChanged
/INotifyPropertyChanged
). Toutefois, si vous savez à propos de ces changements, vous pouvez obtenir la liste de re-lier lui-même. Puisque vous êtes sous-classement, vous pouvez appeler le:ou pour un seul élément:
Autrement, car ce n'est pas publique, vous pouvez simuler en changeant la
DisplayMember
:Un peu hacky, peut-être, mais il fonctionne, et maintient la sélection en cours, etc (à la différence de compensation de la
DataSource
).Pourquoi ne pas vous mettre à jour manuellement le Texte d'un article en question? Vous pourriez aussi envisager de déployer votre propre mécanisme de liaison de données pour la zone de liste. Et découvrez ObjectListView pour voir si elle est de toute aide.