問題の説明
要素が INotifyPropertyChanged を実装し、コレクション自体がそれらの要素の変更を監視する ObservableCollection を想像してください。 ObservableCollection
解決策
ObservableCollectionEx クラス
提案されたソリューションでは、ObservableCollection
使用法
ObservableCollectionEx
<code class="language-csharp">ObservableCollectionEx<Element> collection = new ObservableCollectionEx<Element>(); ((INotifyPropertyChanged)collection).PropertyChanged += (x, y) => ReactToChange();</code>
メモ
この実装では、要素のプロパティが変更されるとコレクションの PropertyChanged イベントが発生しますが、混乱を招く可能性があります。したがって、そのような変更のために特別に追加のイベントを導入することができます。
さらに、BCL の ObservableCollection
<code class="language-csharp">((INotifyPropertyChanged)collection).PropertyChanged += (x, y) => ReactToChange();</code>
PropertyChanged からサブスクライブを解除するには、イベント ハンドラーを null に設定する必要があることに注意してください:
<code class="language-csharp">collection.PropertyChanged -= (s, e) => { Trace.WriteLine("Changed " + e.PropertyName); };</code>
以上が要素プロパティの変更を監視する ObservableCollection を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。