具有绑定的多级WPF树视图

时间:2016-08-21 15:02:08

标签: c# wpf c#-4.0 data-binding treeview

我只想在wpf中使用绑定创建一个树视图。我有一个类(ClassRoot)作为root,我在类Map.EntryClassAClassB的根类中有3个属性,如下所示,

ClassC

每个类都有自己的属性。它可能具有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; } } ClassB也具有相同的结构。我想在WPF树视图中显示如下,

  • ClassRoot
    • ClassA的
      • 名称
      • listValues
      • stringValues
    • ClassB的
      • 名称
      • listValues
      • stringValues

每个属性都应该是可编辑的,类型ClassCList的属性应该在树视图中表示为Enum。 我可以使用分层数据模板,但我很难实现这个多级层次结构。 我该如何处理?
谢谢,

1 个答案:

答案 0 :(得分: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>