创建一个WPF混合控件(TreeView + DataGrid = DataTreeGrid)

17

我需要创建一个TreeView来保存同步数据,就像DataGrid一样。

为了澄清,请看这张图片:
DataTreeGrid Custom Control

因此,我有一个左侧的TreeView和右侧的列。
数据将来自于这样的对象:

public NodeData Parent;
public List<NodeData> Children;

public String Label;

public Boolean DataA;
public Boolean DataB;
public Boolean DataC;
public Boolean DataX;
public Boolean DataY;
public Boolean DataZ;

我该如何创建这个?


可能重复问题:http://stackoverflow.com/questions/1020213/c-can-i-show-an-expandable-tree-like-view-in-a-datagrid,以及https://dev59.com/_3A75IYBdhLWcg3wH1XP - xdumaine
@roviuser,那个话题不能回答我的问题...它甚至没有直接解决问题...但是,是的,看起来是相同的情况... - NemoStein
3个回答

7

3
虽然您的回答没有解释任何内容,但链接非常有用。这正是我需要的... - NemoStein
将评论部分的多根加法添加进来,这就太棒了! - Brock Hensley
3
链接已失效... - Viktor

2

这个 是我发现的最好的控件,用于呈现类似这样的数据。它不需要在视图模型上使用接口/基类,并使用 HierarchicalDataTemplate


1
我发现它对键盘导航(上下键)的处理相当奇怪。从这里控制:http://blogs.msdn.com/b/atc_avalon_team/archive/2006/03/01/541206.aspx应该是上面控件的一个插入式替代品,具有适当的键盘处理功能。 - Gman
1
@Gman评论中链接的博客文章现在在这里:https://learn.microsoft.com/en-us/archive/blogs/atc_avalon_team/treelistview-show-hierarchy-data-with-details-in-columns - Carl Reinke

1
在我看来,这似乎是一个普通的DataGrid,并设置了一些分组。
因此,在您的情况下,您将创建一个DataGrid,该DataGrid对Root、Node#、第二个数字节点和第三个数字节点进行分组。
还要展开您的NodeData列表,使其成为一个包含Root、NodeLevel1、NodeLevel2和NodeLevel3属性的单个列表。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接