2017-01-23 3 views
1

계층 적 트리를 만들고 싶습니다. 나는 here에서 모든 단계를 밟았다. 그러나 웬일인지 그것이 단지 1 개의 깊은 곳을 나에게 보여준다. 다음은 내가받은 것입니다 : enter image description here 그 이유는 무엇입니까?내 트 리뷰에 한 레벨 만 표시되는 이유는 무엇입니까?

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으로 만들 수도 있습니다.