Umgang mit Eigenschaftswertänderungen mit benutzerdefinierten Ereignissen
Zur Beantwortung der Frage bezüglich der Auslösung eines Ereignisses bei einer Eigenschaftswertänderung ist es wichtig zu beachten dass die INotifyPropertyChanged-Schnittstelle über Ereignisse funktioniert. Die Schnittstelle bietet ein einzelnes Ereignis, PropertyChanged, das Verbraucher abonnieren können.
Eine zuverlässigere Implementierung von INotifyPropertyChanged erfordert jedoch eine sorgfältige Verwaltung des Ereignisses:
protected void OnPropertyChanged(PropertyChangedEventArgs e) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) handler(this, e); } protected void OnPropertyChanged(string propertyName) { OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); }
Dieser Ansatz isoliert die Benachrichtigung über Eigenschaftsänderungen Methoden, vereinfacht die Eigenschaftenverwaltung und realisiert die INotifyPropertyChanged-Schnittstelle vollständig. Darüber hinaus können Sie ein benutzerdefiniertes Ereignis für eine bestimmte Eigenschaftsänderung erstellen:
protected void OnImageFullPathChanged(EventArgs e) { EventHandler handler = ImageFullPathChanged; if (handler != null) handler(this, e); } public event EventHandler ImageFullPathChanged;
Mit dem in .Net 4.5 eingeführten „CallerMemberAttribute“ können Sie den impliziten Aufruf von Eigenschaftsnamen nutzen:
protected void OnPropertyChanged( [System.Runtime.CompilerServices.CallerMemberName] string propertyName = "") { OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); }
Das obige ist der detaillierte Inhalt vonWie kann ich Eigenschaftswertänderungen in C# mithilfe von Ereignissen effizient verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!