2009-06-05 152 views
1

我有類似下面的snipet一個簡單的任務hirachey:顯示自定義的層次

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看起來很理想,但由於我不使用數據集,這個控制被排除在外?或者我如何修改我的代碼以使我能夠使用TreeView?

乾杯 安東尼

回答

3

你並不需要做綁定的TreeView的數據。

您可以創建TreeNode實例,並將它們自己添加到TreeView.Nodes集合中。

這將允許您以編程方式從您的數據創建一個TreeView。

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); 
    } 
}