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
ObservableCollectionEx<Element> collection = new ObservableCollectionEx<Element>(); ((INotifyPropertyChanged)collection).PropertyChanged += (x, y) => ReactToChange();
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
((INotifyPropertyChanged)collection).PropertyChanged += (x, y) => ReactToChange();
Perhatikan bahawa berhenti melanggan PropertyChanged memerlukan menetapkan pengendali acara kepada null:
collection.PropertyChanged -= (s, e) => { Trace.WriteLine("Changed " + e.PropertyName); };
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!