Heim >Backend-Entwicklung >C++ >Warum ändert sich meine Beobachtungsvorschriften nicht an, die Eigenschaften der Elemente zu erkennen?
Ihre CollectionViewModel
Klasse verwendet ein ObservableCollection<EntityViewModel>
mit dem Namen ContentList
. Trotz der Verwendung von RaisePropertyChanged("IsRowChecked")
in Ihrem EntityViewModel
zu signalisieren Änderungen in der Eigenschaft IsRowChecked
werden diese Updates nicht konsequent reflektiert.
Hier ist eine Lösung, um eine wirklich beobachtbare Sammlung zu erstellen, die Änderungen in den Eigenschaften seiner enthaltenen Objekte zuverlässig erkennt:
<code class="language-csharp">public sealed class TrulyObservableCollection<T> : ObservableCollection<T> where T : INotifyPropertyChanged { // ... implementation details ... }</code>
Diese erweiterte ObservableCollection
stellt alle hinzugefügten Elemente implementieren INotifyPropertyChanged
. Beim Hinzufügen eines Elements wird das Ereignis des Artikels PropertyChanged
abonniert. Wenn sich eine Eigenschaft innerhalb eines Elements ändert, erhöht die Sammlung eine NotifyCollectionChangedEventArgs
mit NotifyCollectionChangedAction.Replace
. Diese Aktion löst Aktualisierungen für alle gebundenen Steuerelemente aus und sorgt dafür, dass eine konsistente UI -Aktualisierung festgelegt wird. (Hinweis: Der Abschnitt // ... implementation details ...
würde den Code enthalten, um das Abonnement und die Ereigniserhebung zu verarbeiten.)
Das obige ist der detaillierte Inhalt vonWarum ändert sich meine Beobachtungsvorschriften nicht an, die Eigenschaften der Elemente zu erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!