Pergunta

Como seria possível escolher um datatemplate diferente accroding a um campo na origem da ligação de dados? Eu teria 2 DataTemplates diferentes

<DataTemplate x:Key="DataTemplateLabel">
    <Label Width="60" Height="25" Background="Red">
    <TextBlock Text="{Binding Path=Name}"/>
    </Label>
</DataTemplate>



<DataTemplate x:Key="DataTemplateTxtBox">
    <TextBox Width="60" Height="25" Background="Red" Text="{Binding Path=Text}"/>
</DataTemplate>

if (isText) Em seguida, use DataTemplateTxtBox uso MAIS DataTemplateLabel) Isso é possível? Obrigado.

Foi útil?

Solução

Você pode criar um DataTemplateSelector e atribuí-lo à propriedade ContentTemplateSelector (ou ItemTemplateSelector se ele está em um ItemsControl)

Outras dicas

Esta é mais uma resposta indireta, mas fazendo polimorfismo (ou seja, abandonando ISTEXT propriedade e respondendo à pergunta usando um tipo diferente), você pode definir um DataTemplate para cada tipo diferente.

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