Condicionais modelos de dados no WPF
-
05-07-2019 - |
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.
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