Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mencipta ObservableCollection yang Memantau Perubahan dalam Sifat Elemennya?
Pernyataan Masalah
Bayangkan ObservableCollection di mana elemen melaksanakan INotifyPropertyChanged dan koleksi itu sendiri memantau elemen tersebut untuk sebarang perubahan. Walaupun ObservableCollection
Penyelesaian
Kelas ObservableCollectionEx
Penyelesaian yang dicadangkan memperkenalkan ObservableCollectionEx
Penggunaan
ObservableCollectionEx
<code class="language-csharp">ObservableCollectionEx<Element> collection = new ObservableCollectionEx<Element>(); ((INotifyPropertyChanged)collection).PropertyChanged += (x, y) => ReactToChange();</code>
Nota
Walaupun pelaksanaan ini mengaktifkan acara PropertyChanged koleksi apabila sifat unsur berubah, ini boleh mengelirukan. Oleh itu, acara tambahan boleh diperkenalkan khusus untuk perubahan tersebut.
Tambahan pula, pelaksanaan ObservableCollection
<code class="language-csharp">((INotifyPropertyChanged)collection).PropertyChanged += (x, y) => ReactToChange();</code>
Perhatikan bahawa berhenti melanggan PropertyChanged memerlukan menetapkan pengendali acara kepada null:
<code class="language-csharp">collection.PropertyChanged -= (s, e) => { Trace.WriteLine("Changed " + e.PropertyName); };</code>
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta ObservableCollection yang Memantau Perubahan dalam Sifat Elemennya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!