Como é que uma definição XAML se transformou em uma instância de objeto?

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

  •  02-07-2019
  •  | 
  •  

Pergunta

XAML permite que você especifique um valor de atributo usando uma string que contém chaves. Aqui está um exemplo que cria um Ligação instância e atribui ao Texto do TextBox elemento.

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

Eu quero estender XAML para que o desenvolvedor poderia entrar neste como válido ...

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

Isso criaria uma instância da minha classe e definir as propriedades Field1 / Field2 conforme apropriado. Isso é possível? Se sim, como você faz isso?

Se isto é possível, eu tenho uma pergunta de acompanhamento. Posso tirar uma seqüência de "{Binding ElementName = Foo, Path = Bar}" e pedir o enquadramento para processá-lo e devolver o Ligação instância que especificado? Isso deve ser feito em algum lugar já para fazer a acima trabalho XAML e por isso deve haver uma maneira de pedir a mesma coisa para ser processado.

Outras dicas

A classe Binding é um marcação de extensão . Você pode escrever seu próprio derivando System.Windows.Markup.MarkupExtension.

ElementName e Path são simplesmente propriedades no objeto Binding.

Quanto ao acompanhamento você pode criar um novo Binding em código por instanciar o objeto Binding. Eu não sei de uma maneira de processar uma seqüência completamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top