/ / ¿Cómo puedo especificar múltiples DataTemplate en windows.resources para su uso por un ContentControl - wpf, xaml, datatemplate, contentcontrol

¿Cómo puedo especificar múltiples DataTemplate en windows.resources para su uso por un ContentControl - wpf, xaml, datatemplate, contentcontrol

¿Cómo puedo especificar múltiples DataTemplate en windows.resources para su uso por un ContentControl? Mi código:

<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>

Muchas gracias!

Respuestas

1 para la respuesta № 1

Use DataTemplateSelector para devolver la placa de datos que desea aplicar.

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

aquí MYtemplateselector es DataTemplateSelector, en el método Select () de selector, puede verificar la propiedad vinculada a contentcontrol y devolver la plantilla de datos correspondiente.

Gracias


0 para la respuesta № 2

retirar x:Key de DataTemplate y prueba esto:

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

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

En este articulo, Josh Smith Mostrar, cómo acceder a los elementos que se encuentran en el DataTemplate:

Cómo usar FindName con un ContentControl