Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Melaksanakan INotifyPropertyChanged dengan Selamat untuk Pemberitahuan Perubahan Nilai Harta?
Cara Memberitahu Perubahan Nilai Harta Menggunakan Peristiwa
Untuk melihat perubahan nilai harta, anda boleh menggunakan antara muka INotifyPropertyChanged, yang termasuk acara PropertyChanged . Acara ini boleh dilanggan oleh pengguna untuk mengesan perubahan dalam hartanah tertentu.
public interface INotifyPropertyChanged { event PropertyChangedEventHandler PropertyChanged; }
Pelaksanaan Selamat INotifyPropertyChanged dengan Acara
Sementara respons Richard sebelum ini memperkenalkan pelaksanaan yang tidak selamat , berikut ialah versi disemak yang memastikan urutan keselamatan:
public class MyClass : INotifyPropertyChanged { private string imageFullPath; protected void OnPropertyChanged(PropertyChangedEventArgs e) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) handler(this, e); } protected void OnPropertyChanged(string propertyName) { OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); } public string ImageFullPath { get { return imageFullPath; } set { if (value != imageFullPath) { imageFullPath = value; OnPropertyChanged("ImageFullPath"); } } } public event PropertyChangedEventHandler PropertyChanged; }
Pelaksanaan ini:
Peristiwa Perubahan Harta Khusus Tambahan
Untuk butiran tambahan, anda boleh menentukan acara berasingan untuk sifat tertentu, seperti:
protected void OnImageFullPathChanged(EventArgs e) { EventHandler handler = ImageFullPathChanged; if (handler != null) handler(this, e); } public event EventHandler ImageFullPathChanged;
Dalam penetap hartanah, gunakan kedua-dua acara OnPropertyChanged umum dan khusus Acara OnImageFullPathChanged.
Memudahkan Pemerolehan Nama Harta (C# 4.5 Sahaja)
Akhir sekali, untuk C# 4.5 dan ke atas, gunakan CallerMemberAttribute untuk menghapuskan nama hartanah secara automatik memerlukan rentetan manual literal:
protected void OnPropertyChanged( [System.Runtime.CompilerServices.CallerMemberName] string propertyName = "") { OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); }
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan INotifyPropertyChanged dengan Selamat untuk Pemberitahuan Perubahan Nilai Harta?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!