Maison >développement back-end >C++ >Comment puis-je créer une ObservableCollection qui surveille les modifications apportées aux propriétés de ses éléments ?
Énoncé du problème
Imaginez une ObservableCollection où les éléments implémentent INotifyPropertyChanged et la collection elle-même surveille ces éléments pour détecter toute modification. Bien que ObservableCollection
Solution
Classe ObservableCollectionEx
La solution proposée introduit ObservableCollectionEx
Utilisation
ObservableCollectionEx
<code class="language-csharp">ObservableCollectionEx<Element> collection = new ObservableCollectionEx<Element>(); ((INotifyPropertyChanged)collection).PropertyChanged += (x, y) => ReactToChange();</code>
Remarques
Bien que cette implémentation déclenche l'événement PropertyChanged de la collection lorsque la propriété d'un élément change, cela peut prêter à confusion. Par conséquent, un événement supplémentaire peut être introduit spécifiquement pour de tels changements.
De plus, l'implémentation ObservableCollection
<code class="language-csharp">((INotifyPropertyChanged)collection).PropertyChanged += (x, y) => ReactToChange();</code>
Notez que la désinscription de PropertyChanged nécessite de définir le gestionnaire d'événements sur null :
<code class="language-csharp">collection.PropertyChanged -= (s, e) => { Trace.WriteLine("Changed " + e.PropertyName); };</code>
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!