2016-08-21 102 views
1

我只想在wpf中使用綁定創建樹視圖。我有一個類(ClassRoot)作爲根和我在根類ClassA類型,ClassBClassC像下面的3個屬性,帶綁定的多級WPF Treeview

class ClassRoot 
{ 
    public ClassA propClassA { get; set; } 
    public ClassB propClassB { get; set; } 
    public ClassC propClassC { get; set; } 
} 

每個類具有其自己的屬性。它可以具有List類型或Enum等的特性,像下面,

class ClassA 
{ 
    public string Name { get; set; } 

    //Here ListOfValues is an enum 
    public ListOfValues listValues { get; set; } 

    public List<string> stringValues { get; set; } 
} 

像上面的類,ClassBClassC也具有相同的結構。我想在WPF樹形像下面顯示此,

  • ClassRoot
    • ClassA的
      • 名稱
      • listValues
      • stringValues
    • ClassB的 個
      • 名稱
      • listValues
      • stringValues

每個屬性應該是可編輯的,List型或Enum的屬性應該被表示爲樹狀ComboBox。 我可以使用分層數據模板,但我很困惑實現這個多層次的層次結構。 我該如何處理?
謝謝

回答

1

使用HierarchicalDataTemplate

<HierarchicalDataTemplate DataType = "{x:Type src:ClassRoot}" 
           ItemsSource = "{Binding Path=Divisions}"> 
     <TextBlock Text="{Binding Path=Name}"/> 
    </HierarchicalDataTemplate> 

    <HierarchicalDataTemplate DataType = "{x:Type src:ClassA}" 
           ItemsSource = "{Binding Path=Teams}"> 
     <TextBlock Text="{Binding Path=Name}"/> 
    </HierarchicalDataTemplate> 

    <HierarchicalDataTemplate DataType = "{x:Type src:ClassB}" 
           ItemsSource = "{Binding Path=Teams}"> 
     <TextBlock Text="{Binding Path=Name}"/> 
    </HierarchicalDataTemplate> 
+0

你好CodeDOM的,謝謝你的回答。我在使用HierarchicalDataTemplate時沒有問題,我可以在樹視圖中顯示類層次結構,但是我也想要在其節點中顯示下面的ClassA的屬性。我嘗試使用包含標籤的模板來標識ClassA的所有屬性,它將顯示所有屬性作爲一個節點,我希望它們作爲ClassA節點下的單獨節點,並且它應該是可編輯的,這是我的問題... –