Conditional Data Templates in WPF
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开发者_StackOverflow: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.
You can create a DataTemplateSelector
and assign it to the ContentTemplateSelector
property (or ItemTemplateSelector
if it is in an ItemsControl
)
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.
精彩评论