2017-01-23 12 views
1

私は階層ツリーを作成したいと思います。私はhereからすべてのステップをたどりましたが、何らかの理由でそれは私に1レベルの深さしか示していません。 ここに私が得るものがあります:enter image description here 何が原因でしょうか?私のツリービューには1レベルしか表示されないのはなぜですか?

XAML

<TreeView SelectedItemChanged="TreeView_SelectedItemChanged" ItemsSource="{Binding Items}"> 
    <TreeView.ItemTemplate> 
     <HierarchicalDataTemplate ItemsSource="{Binding Children}" DataType="{x:Type local:MyClass}"> 
      <TextBlock Foreground="Red" Text="{Binding Name}" /> 
      <HierarchicalDataTemplate.ItemTemplate> 
       <DataTemplate> 
        <TextBlock Text="{Binding Name}" MouseLeftButtonUp="TreeViewItem_MouseLeftButtonUp"/> 
       </DataTemplate> 
      </HierarchicalDataTemplate.ItemTemplate> 
     </HierarchicalDataTemplate> 
    </TreeView.ItemTemplate> 
</TreeView> 

のViewModel

public class MyClass 
{ 
    public string Name { get; set; } 
    public List<MyClass> Children { get; set; } 
} 

public class MyViewModel 
{ 
    private List<MyClass> _items; 
    public List<MyClass> Items 
    { 
     get 
     { 
      return _items; 
     } 
    } 

    public MyViewModel() 
    { 
     _items = new List<MyClass>(); 
     _items.Add(new MyClass 
     { 
      Name = "1", 
      Children = new List<MyClass> 
      { 
       new MyClass 
       { 
        Name = "1_1", 
        Children = new List<MyClass> 
        { 
         new MyClass 
         { 
          Name = "1_1_1" 
         }, 
         new MyClass 
         { 
          Name = "1_1_2" 
         } 
        } 
       }, 
       new MyClass 
       { 
        Name = "1_2" 
       } 
      } 
     }); 
    } 
} 
+2

'HierarchicalDataTemplate.ItemTemplate'の部分を削除して、それにexampleを実行しないでください。 – Shakra

+0

どのような愚かな間違い。ありがとう。 – theateist

答えて

0

次の2つのレベルのツリービューを得ようとしているので、あなたは、正確に二つのレベルの深としてテンプレートを定義しています。これは、HeirarchicalDataTemplateItemTemplateが子供を持たないDataTemplateであることを明示しているためです。

あなたの意図するテンプレートがどんなものかとは分かりませんが、その内側のテンプレートを削除すると、すべてのアイテムが表示されるはずです。あるいは、内側のテンプレートをHeirarchicalDataTemplateにすることもできます。

関連する問題