您的CollectionViewModel
類利用ObservableCollection<EntityViewModel>
> ContentList
。 儘管在您的RaisePropertyChanged("IsRowChecked")
>中使用EntityViewModel
在IsRowChecked
屬性中發出更改,但這些更新並未始終如一地反映。
這是一種創建一個真正可觀察的集合的解決方案,可可靠地檢測其包含對象的屬性的變化:
<code class="language-csharp">public sealed class TrulyObservableCollection<T> : ObservableCollection<T> where T : INotifyPropertyChanged { // ... implementation details ... }</code>
此增強ObservableCollection
確保所有添加的項目實現INotifyPropertyChanged
。 添加項目後,它會訂閱該項目的PropertyChanged
事件。 當項目中的屬性更改時,該集合將使用NotifyCollectionChangedEventArgs
提出NotifyCollectionChangedAction.Replace
。此操作會觸發所有界控控件的更新,從而確保一致的UI刷新。 (注意:// ... implementation details ...
部分將包含代碼來處理訂閱和事件升高。)
以上是為什麼我的ObservableCollection檢測項目屬性不變?的詳細內容。更多資訊請關注PHP中文網其他相關文章!