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!