2017-01-12 5 views
0

DataContextのタイプに基づいてTreeViewItemの適切なテンプレートを提供するHyerarchicalDataTemplateを使用しています。XAML図面のタイプベース(datacontext)選択の仕方は?

私は2レベルのツリービューを持っています:グループ - >エンティティ。ここではエンティティのタイプが異なる可能性があります。タイプに応じて、ResourceDictionaryファイルの単純なXAMLフォームから作成したアイコンを割り当てたいので、適切な方法を見つけられませんでした。ここで

は私HierarchicalDataTemplateのプレビューです:

<HierarchicalDataTemplate DataType="{x:Type local:EntityTreeViewModel}"> 
    <StackPanel Orientation="Horizontal"> 
    <CheckBox IsChecked="{Binding IsCheckSelected}" /> 
    <ContentControl DataContext="{Binding Entity}" Content="???" /> 
    <TextBlock Text="{Binding Entity.Name}" /> 
    </StackPanel> 
</HierarchicalDataTemplate> 

私は私のXAMLのアイコンを入れたいところContentControlはあるが、私は仕事をするだろう、他のコンポーネントを使用する準備ができています。

だから、基本的には:どのように表示するためにそこにアイコンがXAMLで構築し、 エンティティタイプAのようなことは、私のエンティティの種類によって異なります - > ICONA エンティティタイプB - > IconB

は、事前にありがとうあなたの助け !

+0

異なるエンティティタイプ(DataTemplateの 'DataType'プロパティにエンティティタイプを使用する)に対して異なるDataTemplateを定義し、ContentControlの' Content'プロパティを 'Entity'にバインドします。 DataTemplateは自動的に選択されます(ContentControlの 'ContentTemplate'プロパティに割り当てられます)。 – Clemens

答えて

1

これを試してみてください:EntityAEntityBが同じEntity基本クラスから派生し

<ContentControl Content="{Binding Entity}" xmlns:local="clr-namespace:WpfApplication1"> 
    <ContentControl.Resources> 
     <DataTemplate DataType="{x:Type local:EntityA}"> 
      <Image Source="iconA.png" /> 
     </DataTemplate> 
     <DataTemplate DataType="{x:Type local:EntityB}"> 
      <Image Source="iconB.png" /> 
     </DataTemplate> 
    </ContentControl.Resources> 
</ContentControl> 

クラスまたは同じインターフェイスを実装し、名前空間WpfApplication1で定義されています。

関連する問題