Votre classe CollectionViewModel
utilise un ObservableCollection<EntityViewModel>
nommé ContentList
. Malgré l'utilisation de RaisePropertyChanged("IsRowChecked")
dans votre EntityViewModel
pour signaler des changements dans la propriété IsRowChecked
, ces mises à jour ne sont pas constamment reflétées.
Voici une solution pour créer une collection vraiment observable qui détecte de manière fiable les changements dans les propriétés de ses objets contenus:
<code class="language-csharp">public sealed class TrulyObservableCollection<T> : ObservableCollection<T> where T : INotifyPropertyChanged { // ... implementation details ... }</code>
Cet ObservableCollection
amélioré garantit que tous les éléments ajoutés implémentent INotifyPropertyChanged
. Lors de l'ajout d'un élément, il s'abonne à l'événement PropertyChanged
de l'article. Lorsqu'une propriété dans un article change, la collection soulève un NotifyCollectionChangedEventArgs
avec NotifyCollectionChangedAction.Replace
. Cette action déclenche des mises à jour sur tous les contrôles liés, assurant une actualisation cohérente de l'interface utilisateur. (Remarque: la section // ... implementation details ...
contiendrait le code pour gérer l'abonnement et l'élévation des événements.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!