2009-10-21 7 views
6

¿Cómo sería posible elegir una plantilla de datos diferente debido a un campo en la fuente de enlace de datos? Tendría 2 DataTemplates diferentesPlantillas de datos condicionales en WPF

<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> 

si (ISTEXT) A continuación, utilice DataTemplateTxtBox más use DataTemplateLabel) es esto posible? Gracias.

Respuesta

7

Se puede crear un DataTemplateSelector y la asigna a la propiedad ContentTemplateSelector (o ItemTemplateSelector si está en un ItemsControl)

0

Esto es más una respuesta indirecta, pero haciendo polimorfismo (es decir, abandonando la propiedad IsText y respondiendo la pregunta usando un tipo diferente) puede definir un DataTemplate para cada tipo diferente.