2009-06-05 6 views
1

Je simple hirachey des tâches similaires à l'snipet ci-dessous:Affichage d'une hiérarchie personnalisée

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

Quelle serait la meilleure façon d'afficher ces données? Un TreeView serait idéal, mais puisque je n'utilise pas un DataSet, ce contrôle est-il exclu? Ou comment pourrais-je modifier mon code pour me permettre d'utiliser un TreeView?

Vive Anthony

Répondre

3

Vous n'avez pas besoin de rendre les données TreeView liées.

Vous pouvez créer des instances TreeNode et les ajouter à la collection TreeView.Nodes vous-même. Cela vous permettra de créer un TreeView par programmation à partir de vos données.

2

Jetez un oeil à la TreeView.Nodes.Add method.

Ensuite, utilisez la récursivité pour ajouter les sous-tâches. Quelque chose comme ceci:

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