views:

523

answers:

2

How would it be possible to choose a different datatemplate accroding the a field in the data binding source? I would have 2 different DataTemplates

<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) Then use DataTemplateTxtBox ELSE use DataTemplateLabel) Is this possible? Thanks.

A: 

This is more an indirect answer, but by doing polymorphism (i.e. abandoning IsText property and answering the question using a different type) you can define a DataTemplate for each different type.

flq
+3  A: 

You can create a DataTemplateSelector and assign it to the ContentTemplateSelector property (or ItemTemplateSelector if it is in an ItemsControl)

Thomas Levesque