2

如何在 windows.resources 中指定多个 DataTemplate 供 ContentControl 使用?我的代码:

<Window.Resources>
    <DataTemplate x:Key="CustomerTemplate" DataType="{x:Type local:Customer}">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding FirstName}"/>
            <TextBlock Text=" ("/>
            <TextBlock Text="{Binding Occupation}"/>
            <TextBlock Text=")"/>
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="PersonTemplate" DataType="{x:Type local:Person}">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding FirstName}"/>
            <TextBlock Text=" - "/>
            <TextBlock Text="{Binding LastName}"/>
        </StackPanel>
    </DataTemplate>
</Window.Resources>

太感谢了!

4

2 回答 2

1

使用 DataTemplateSelector 返回您要应用的数据模板。

<ContentControl ContentTemplateSelector="{StaticResource MyTemplateSelector}"/>

这里 MYtemplateselector 是DataTemplateSelector,在选择器的 Select() 方法中可以检查绑定到 contentcontrol 的属性并返回对应的 Datatemplate。

谢谢

于 2013-09-05T09:17:08.827 回答
0

x:Key从中删除DataTemplate并尝试以下操作:

<ContentControl Name="CustomerContentControl">
    <local:Customer />
</ContentControl>

<ContentControl Name="PersonContentControl">
    <local:Person />
</ContentControl>

在本文中,Josh Smith展示了如何访问以下元素中的元素DataTemplate

如何将 FindName 与 ContentControl 一起使用

于 2013-09-05T09:18:44.037 回答