2009-10-21 10 views
6

Wie wäre es möglich, ein anderes Dataplate auszuwählen, das dem a-Feld in der Datenbindungsquelle entspricht? Ich hätte zwei verschiedenen DatatemplatesBedingte Datenvorlagen in 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> 

if (ISTEXT) Verwenden Sie dann DataTemplateTxtBox ELSE DataTemplateLabel verwenden) Ist das möglich? Danke.

Antwort

7

Sie können eine DataTemplateSelector erstellen und weisen es der ContentTemplateSelector Eigenschaft (oder ItemTemplateSelector wenn es in einem ItemsControl ist)

0

Dies ist eher eine indirekte Antwort, aber durch Polymorphie (d. H. Verlassen der IsText-Eigenschaft und Beantworten der Frage mit einem anderen Typ) können Sie eine DataTemplate für jeden anderen Typ definieren.