【问题标题】:Multilevel WPF Treeview with Binding带绑定的多级 WPF 树视图
【发布时间】:2016-08-21 15:02:08
【问题描述】:

我只想在 wpf 中使用绑定创建一个树视图。我有一个类 (ClassRoot) 作为根,我在 ClassA、ClassB、ClassC 类型的根类中有 3 个属性,如下所示,

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 和 ClassC 也具有相同的结构。我想在 WPF 树视图中显示它,如下所示,

  • 类根
    • A 类
      • 姓名
      • 列表值
      • 字符串值
    • B 类
      • 姓名
      • 列表值
      • 字符串值

每个属性都应该是可编辑的,List 或Enum 类型的属性应该在树形视图中表示为ComboBox。 我可以使用分层数据模板,但我对实现这个多层次的层次结构感到困惑。 我该怎么做?
谢谢,

【问题讨论】:

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


    【解决方案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>
    

    【讨论】:

    • 你好codeDom,谢谢你的回答。我在使用 HierarchicalDataTemplate 时没有问题,我可以在树视图中显示类层次结构,但我也想在其节点下方显示 ClassA 的属性。我尝试使用包含 ClassA 的所有属性标签的模板,它将所有属性显示为一个节点,我希望它们作为 ClassA 节点下的单独节点,它也应该是可编辑的,这是我的问题...
    猜你喜欢
    • 2012-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 2011-07-14
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    相关资源
    最近更新 更多