2013-09-05 8 views
2

Как я могу указать несколько DataTemplate в windows.resources для использования ContentControl? Мой код:Как я могу указать несколько DataTemplate в windows.resources для использования 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> 

Спасибо так много!

ответ

1

Использование DataTemplateSelector вернуть DataTemplate вы хотите применить ..

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

здесь MYtemplateselector является DataTemplateSelector в Select() метод выбора вы можете проверить свойства, связанные с ContentControl и возвращают соответствующий DataTemplate ,

Благодаря

+0

@ daniellb это сработало для u? – Nitin

0

Удалить x:Key из DataTemplate и попробовать это:

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

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

В этой статье Josh Smith показать, как получить доступ к элементам, которые находятся в DataTemplate:

How to use FindName with a ContentControl

 Смежные вопросы

  • Нет связанных вопросов^_^