显示自定义层次结构

时间:2009-06-05 22:56:10

标签: c# asp.net treeview hierarchy

我有一个类似下面的snipet的简单的任务:

public class Task
{
    public Guid TaskId { get; set; }
    public Guid ParentId { get; set; }
    public string Name { get; set; }
    public List<Task> Subtasks = new List<Task>();
}

显示此数据的最佳方法是什么? TreeView看起来很理想但是因为我没有使用DataSet,所以这个控件被排除了吗?或者我如何修改我的代码以使我能够使用TreeView?

干杯 安东尼

2 个答案:

答案 0 :(得分:3)

您无需绑定TreeView数据。

您可以创建TreeNode实例,并自己将它们添加到TreeView.Nodes集合中。

这将允许您以编程方式从数据创建TreeView。

答案 1 :(得分:2)

查看TreeView.Nodes.Add method

然后使用递归来添加子任务。像这样:

public void AddTaskToTree(TreeNodeCollection nodes, Task aTask)
{
    TreeNode taskNode = New TreeNode(aTask.Name);
    nodes.Add(taskNode);
    foreach (Task subTask in aTask.Subtasks)
    {
        AddTaskToTree(taskNode.Nodes, subTask);
    }
}