Gestion des changements de valeur de propriété avec des événements personnalisés
En réponse à la question concernant le déclenchement d'un événement lors d'un changement de valeur de propriété, il est important de noter que l'interface INotifyPropertyChanged fonctionne via des événements. L'interface fournit un événement unique, PropertyChanged, auquel les consommateurs peuvent s'abonner.
Cependant, une implémentation plus fiable de INotifyPropertyChanged implique une gestion minutieuse de l'événement :
protected void OnPropertyChanged(PropertyChangedEventArgs e) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) handler(this, e); } protected void OnPropertyChanged(string propertyName) { OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); }
Cette approche isole les notifications de changement de propriété. méthodes, simplifie la gestion des propriétés et réalise pleinement l'interface INotifyPropertyChanged. De plus, vous pouvez créer un événement personnalisé pour un changement de propriété spécifique :
protected void OnImageFullPathChanged(EventArgs e) { EventHandler handler = ImageFullPathChanged; if (handler != null) handler(this, e); } public event EventHandler ImageFullPathChanged;
À l'aide de « CallerMemberAttribute » introduit dans .Net 4.5, vous pouvez tirer parti de l'invocation implicite du nom de propriété :
protected void OnPropertyChanged( [System.Runtime.CompilerServices.CallerMemberName] string propertyName = "") { OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!