2017-01-23 102 views
1

我想創建分層樹。我跟着從here的每一步,但由於某種原因,它顯示我只有一個深度。 這是我得到的:enter image description here 可能是什麼原因?爲什麼我的treeview只顯示一個級別?

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> 

視圖模型

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'並運行沒有它的例子。 – Shakra

+0

多麼愚蠢的錯誤。謝謝。 – theateist

回答

0

您要定義模板,正好有兩個層次深,所以你會得到一個二級樹視圖。這是因爲您明確指出HeirarchicalDataTemplateItemTemplate應該是DataTemplate而沒有孩子。

我不確定你想要的模板應該是什麼,但如果你刪除了內部模板,你應該得到所有的項目顯示。或者,您可以使內部模板也是HeirarchicalDataTemplate

相關問題