La construction XAML {Binding} est très pratique car elle gère automatiquement tous les problèmes PropertyChanged. C'est vraiment impressionnant quand vous lui donnez un chemin vers un objet, à travers des structures de données .NET, et tout est automatiquement mis à jour pour vous.Comment créer des liaisons de chemin de type XAML dans C#
Je voudrais utiliser la même chose en C#. Je voudrais avoir une propriété qui est dérivée de la valeur d'une autre propriété. Exemple
class Foo
{
public Bar Bar = new Bar();
public string ItGetter
{
get
{
return Bar.Baz.It;
}
}
}
class Bar
{
public Baz Baz = new Baz();
}
class Baz
{
public string It { get { return "You got It!"; } }
}
Si vous appelez ItGetter sur un Foo, vous obtenez la valeur It de Baz. Cela fonctionne bien, sauf qu'il n'est pas invalidé - c'est-à-dire, si cela a changé, il n'y aurait pas de notifications de modification sur le ItGetter. En outre, si les références Foo.Bar ou Bar.Baz sont modifiées, vous n'obtiendrez pas non plus de modifications.
Je peux ajouter le code IChangeNotify approprié sur les propriétés, mais ma question est: Comment coder la propriété ItGetter de sorte qu'elle appelle son événement PropertyChanged lorsque l'une des références dans le chemin, ou la valeur It change? J'espère que je n'ai pas à configurer manuellement la propriété a changé les événements sur tous les éléments dans le chemin ....
Merci pour toute aide!
Eric
Voir ma réponse (Eric), ci-dessous pour le code complet de cette solution. – Eric