2010-12-15 16 views
2

IListを階層表示のWPF TreeViewにバインドしようとしています。ここに私のオブジェクトがあります:WPF - XAML TreeviewからGeneric.Listへのバインド

特定のオブジェクトにいくつの子供がいるか分かりませんし、子供も子供がいるかもしれません。

私は私のHierarchialDataTemplateで周りの騒ぎが、成功しているわけではない:

<TreeView Canvas.Left="263" Canvas.Top="12" Height="200" Name="TeamTreeView" Width="120"> 
     <TreeView.Resources> 
      <HierarchicalDataTemplate DataType="{x:Type local:TeamsTreeViewItem}" ItemsSource="{Binding DisplayValue}" > 
       <TextBlock Text="{Binding DisplayValue}"/> 
      </HierarchicalDataTemplate> 
      <HierarchicalDataTemplate DataType="{x:Type local:TeamsTreeViewItem}" ItemsSource="{Binding Children}" > 
       <TextBlock Text="{Binding DisplayValue}"/> 
      </HierarchicalDataTemplate> 
     </TreeView.Resources> 
    </TreeView> 

任意の提案ですか?

+0

すべてのノードがTeamsTreeViewItemであるため、HierarchicalDataTemplateを1つだけ使用する必要があります。またItemsSourceをChildrenコレクションにバインドする必要があります:ItemsSource = "{Binding Path = Children}" – markmnl

答えて

1

あなたがそうのような子供たちにのItemsSourceを適用する必要があります。

<HierarchicalDataTemplate DataType="{x:Type local:TeamsTreeViewItem}" ItemsSource="{Binding Path=Children}"> 
    <TextBlock Text="{Binding DisplayValue}"/> 
</HierarchicalDataTemplate> 

は、私がデータ型に基づいて、このDataTemplateを適用、その方法は、子どもたちが同じタイプ(TeamsTreeViewItem)である場合に、自動的にそれを適用する必要がありますされますたとえそれが子供、孫、または偉大な偉大な偉大な....孫であっても、そのタイプのものを見つけることができます。 TeamsTreeViewItemが定義されている名前空間(ここでは "ローカル"と表記)を必ず含めてください。

関連する問題