¿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 № 1Use 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