Je voudrais implémenter l'interface System.ComponentModel.INotifyPropertyChanged pour une propriété sur une classe de base, mais je ne suis pas sûr de savoir comment la connecter.WPF - Implémenter System.ComponentModel.INotifyPropertyChanged pour la classe de base
est ici la signature de la propriété que je voudrais recevoir des notifications pour:
public abstract bool HasChanged();
Et mon code dans la classe de base pour la gestion du changement:
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(String info)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(info));
}
}
Comment gérer la connexion de l'événement dans la classe de base sans avoir à appeler OnPropertyChanged() dans chaque classe enfant?
Merci,
Sonny
EDIT: OK ... Je pense donc que lorsque la valeur pour hasChanged() change, je suis censé appeler OnPropertyChanged("HasChanged")
, mais je ne suis pas sûr de savoir comment obtenir cela dans la classe de base. Des idées?
d'une manière générale, cela est impossible. – Jon
Aussi, 'HasChanged' est une méthode ici, pas une propriété. Copier/coller une erreur? – Jon
pas vrai, il peut toujours mettre à jour la propriété de la classe de base, voir ma réponse édité ci-dessous. – VoodooChild