使用自訂事件處理屬性值變更
在回答有關在屬性值變更時引發事件的問題時,需要注意的是INotifyPropertyChanged 介面透過事件進行操作。此介面提供了一個事件 PropertyChanged,消費者可以訂閱該事件。
但是,INotifyPropertyChanged 的更可靠實作需要仔細管理該事件:
protected void OnPropertyChanged(PropertyChangedEventArgs e) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) handler(this, e); } protected void OnPropertyChanged(string propertyName) { OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); }
這種方法隔離了屬性變更通知方法,簡化屬性處理,並完全實作 INotifyPropertyChanged 介面。此外,您還可以為特定屬性變更建立自訂事件:
protected void OnImageFullPathChanged(EventArgs e) { EventHandler handler = ImageFullPathChanged; if (handler != null) handler(this, e); } public event EventHandler ImageFullPathChanged;
使用 .Net 4.5 中引入的“CallerMemberAttribute”,您可以利用隱式屬性名稱呼叫:
protected void OnPropertyChanged( [System.Runtime.CompilerServices.CallerMemberName] string propertyName = "") { OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); }
以上是如何使用事件有效處理 C# 中的屬性值變化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!