Domanda

XAML ti consente di specificare un valore di attributo usando una stringa che contiene parentesi graffe. Ecco un esempio che crea un'istanza Binding e la assegna alla proprietà Text dell'elemento TextBox .

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

Voglio estendere XAML in modo che lo sviluppatore possa inserirlo come valido ...

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

Questo crea un'istanza della mia classe e imposta le proprietà Field1 / Field2 come appropriato. È possibile? In tal caso, come si fa?

Se questo è possibile, ho una domanda di follow-up. Posso prendere una stringa " {Binding ElementName = Foo, Path = Bar} " e chiedere al framework di elaborarlo e restituire l'istanza Binding specificata? Questo deve essere già fatto da qualche parte per far funzionare XAML sopra e quindi ci deve essere un modo per chiedere che la stessa cosa venga elaborata.

Altri suggerimenti

La classe Binding è una Markup Extension . Puoi scrivere il tuo derivando da System.Windows.Markup.MarkupExtension .

ElementName e Path sono semplicemente proprietà dell'oggetto Binding .

Per quanto riguarda il followup, puoi creare un nuovo Binding nel codice creando un'istanza dell'oggetto Binding . Non conosco un modo per elaborare una stringa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top