2016-08-21 56 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节点下的单独节点,并且它应该是可编辑的,这是我的问题... –