Comment une définition XAML est-elle transformée en une instance d'objet?

StackOverflow https://stackoverflow.com/questions/114154

  •  02-07-2019
  •  | 
  •  

Question

XAML vous permet de spécifier une valeur d'attribut à l'aide d'une chaîne contenant des accolades. Voici un exemple qui crée une instance Binding et l'assigne à la propriété Text de l'élément TextBox .

<TextBox Text="{Binding ElementName=Foo, Path=Bar}"/>

Je souhaite étendre XAML afin que le développeur puisse entrer ceci comme étant valide ...

<TextBox Text="{MyCustomObject Field1=Foo, Field2=Bar}"/>

Ceci créerait une instance de ma classe et définirait les propriétés Field1 / Field2 comme il convient. Est-ce possible? Si oui comment le faites-vous?

Si cela est possible, j'ai une question de suivi. Puis-je prendre une chaîne "{Binding ElementName = Foo, Path = Bar}}" et demander au framework de la traiter et de renvoyer l'instance Binding spécifiée? Cela doit déjà être fait quelque part pour que le XAML ci-dessus fonctionne, il doit donc y avoir un moyen de demander que la même chose soit traitée.

Était-ce utile?

Autres conseils

La classe Binding est une extension de balisage . Vous pouvez écrire le vôtre en dérivant de System.Windows.Markup.MarkupExtension .

ElementName et Path sont simplement des propriétés de l'objet Binding .

Comme pour le suivi, vous pouvez créer un nouveau code Binding en instanciant l’objet Binding . Je ne connais pas de moyen de traiter une chaîne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top