Cómo se hace una definición de XAML llegar a convertirse en una instancia de un objeto?
Pregunta
XAML permite especificar el valor de un atributo mediante una cadena que contiene las llaves.Aquí está un ejemplo que crea un Enlace instancia y se asigna a la Texto la propiedad de la Cuadro de texto elemento.
<TextBox Text="{Binding ElementName=Foo, Path=Bar}"/>
Quiero extender XAML para que el desarrollador podría entrar en esto como válido...
<TextBox Text="{MyCustomObject Field1=Foo, Field2=Bar}"/>
Esto crearía una instancia de mi clase y el Campo1/Campo2 propiedades según corresponda.Es esto posible?Si es así, ¿cómo lo haces?
Si esto es posible, tengo una pregunta de seguimiento.Puedo tomar una cadena "{Binding ElementName=Foo, Path=Bar}" y pedimos el marco de procesar y devolver el Enlace instancia especificado?Esto debe hacerse en alguna parte ya de hacer lo anterior XAML y, por lo tanto, debe haber una manera de pedir la misma cosa para ser procesados.
Solución
echa un vistazo a markupextensions http://blogs.msdn.com/wpfsdk/archive/2007/03/22/blogpost-text-creatingasimplecustommarkupextension.aspx
Otros consejos
El Binding
es una clase de un La Extensión De Marcado.Usted puede escribir su propio derivando de System.Windows.Markup.MarkupExtension
.
ElementName
y Path
son simplemente propiedades en el Binding
objeto.
Como para el seguimiento puede crear una nueva Binding
en el código que se ejecuta el Binding
objeto.No conozco una manera de procesar una cadena a través de.