2017-02-02 9 views
1

У меня есть некоторые проблемы с привязкой ContentControl к ListboxItem.Установить DataTemplate по ElementName

Это мой список.

<ListBox x:Name="box"> 
    <ListBoxItem Tag="{x:Type vm:PART_FAMILY_ViewModel}" Content="Car"></ListBoxItem> 
    <ListBoxItem Tag="{x:Type vm:PART_TYPES_ViewModel}" Content="Bike" IsSelected="True"></ListBoxItem> 
</ListBox> 

Это мой ContenControl:

<ContentControl Content="{Binding ElementName=box, Path=SelectedItem.Tag}"> 
    <ContentControl.Resources> 

    <DataTemplate DataType="{x:Type vm:PART_FAMILY_ViewModel}"> 
     <v:PART_FAMILYS_View></v:PART_FAMILYS_View> 
    </DataTemplate> 

    <DataTemplate DataType="{x:Type vm:PART_TYPES_ViewModel}"> 
     <v:PART_TYPES_View></v:PART_TYPES_View> 
    </DataTemplate> 

    </ContentControl.Resources> 
</ContentControl> 

С моей ELEMENTNAME я вижу только DATATYPE тегов в моем ContentControl.

ответ

1

С моим Elementname я вижу только тег DataType в своем ContentControl.

Это потому, что вы установили свойство Tag в тип. Вы должны установить его на экземпляр типа для DataTemplate, который будет применяться как ожидалось:

<ListBox x:Name="box"> 
    <ListBoxItem Content="Car"> 
     <ListBoxItem.Tag> 
      <vm:PART_FAMILY_ViewModel /> 
     </ListBoxItem.Tag> 
    </ListBoxItem> 
    <ListBoxItem Content="Bike" IsSelected="True"> 
     <ListBoxItem.Tag> 
      <vm:PART_TYPES_ViewModel /> 
     </ListBoxItem.Tag> 
    </ListBoxItem> 
</ListBox> 

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

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