开发者

Conditional Data Templates in WPF

开发者 https://www.devze.com 2022-12-09 05:13 出处:网络
How would it be possible to choose a different datatemplate accroding the a field in the data binding source?

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.

0

精彩评论

暂无评论...
验证码 换一张
取 消