Question

J'ai dans mon edmx produit un auto-propriété de base de données: Description de . Je crée ensuite un fichier .cs "de classe partielle" pour l'entité et ajouter une propriété en lecture seule: ShortDescription . Le getter de ShortDescription traite simplement Description (Enlève saut de ligne, retour chariot, etc.).

Comment puis-je augmenter la notification de changement de propriété pour ShortDescription sur le poseur de la description?

Merci!

Était-ce utile?

La solution

Cela va être un hack, mais il peut être fait.

D'abord, vous devez remplacer ReportPropertyChanging et ReportPropertyChanged . Vérifiez ensuite le paramètre pour le nom de votre propriété ... dans ce cas, « Description ». Si elle se produit, appelez ReportPropertyChanging ou ReportPropertyChanged avec le nom de la propriété dérivée, dans ce cas « ShortDescription ». Pour toute autre valeur du paramètre, appelez la version de base de ReportPropertyChanging/Changed.

Modifier Par exemple:

    protected override void OnPropertyChanging(string property)
    {
        if (property == "Description")
        {
            base.OnPropertyChanging("ShortDescription");
        }
        base.OnPropertyChanging(property);
    }

    protected override void OnPropertyChanged(string property)
    {
        if (property == "Description")
        {
            base.OnPropertyChanged("ShortDescription");
        }
        base.OnPropertyChanged(property);
    }

Autres conseils

Les méthodes sont aussi partielle, donc dans votre classe partielle, vous pouvez ajouter du code comme ceci

 partial void OnDescriptionChanged()
  {
    OnPropertyChanged("ShortDescription"); 
  }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top