Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 复杂(?)树视图结构-HierarchycalDataTemplate_C#_Wpf_Treeview - Fatal编程技术网

C# 复杂(?)树视图结构-HierarchycalDataTemplate

C# 复杂(?)树视图结构-HierarchycalDataTemplate,c#,wpf,treeview,C#,Wpf,Treeview,根据螺纹(WPF,C#) 我没有让它工作。 我的问题是班级部门的一个TreeView项目可以添加到另一个部门的TreeView项目中,以此类推。。。目前,可以实施一级部门结构 - Department 2 - Department 4 - Department 5 -Client 4 - Feature 1 我非常感谢一些新的帮助。

根据螺纹(WPF,C#)

我没有让它工作。 我的问题是班级部门的一个TreeView项目可以添加到另一个部门的TreeView项目中,以此类推。。。目前,可以实施一级部门结构

- Department 2
         - Department 4
                 - Department 5
                        -Client 4
                               - Feature 1
我非常感谢一些新的帮助。 谢谢。

这就是你的意思吗? 为所有项目(部门、客户和可能的功能)提供一个
observedcollection
属性,并将其命名为Children
还可以在每个项目中添加一个
字符串名
属性。

您可以向孩子添加任何内容,如部门或客户或其他内容。 这是xaml:

<TreeView x:Name="treeView1" ItemsSource="{Binding}">
  <TreeView.ItemTemplate>
    <HierarchicalDataTemplate ItemsSource="{Binding Path=Children}">
      <TextBlock Text="{Binding Path=Name}"/>
    </HierarchicalDataTemplate>
  </TreeView.ItemTemplate>
</TreeView>

示例类:

public class Department
{
  public ObservableCollection<Object> Children { get; set; }
  public string Name { get; set; }
}

public class Client
{
  public ObservableCollection<Object> Children { get; set; }
  public string Name { get; set; }
}
公共课部
{
公共可观测集合子项{get;set;}
公共字符串名称{get;set;}
}
公共类客户端
{
公共可观测集合子项{get;set;}
公共字符串名称{get;set;}
}

哇,我想这正是我想要做的。非常简单和快速。我已经为所有类添加了一个构造函数来初始化集合。现在,在我的测试场景中,它就像一个符咒。非常感谢您的帮助。@user1011394应该早点想到这一点,但是如果在抽象类中的name和children属性位于何处,则会更加优雅。祝你好运:)