Bonjour à tous,

Pour mon travaille de stage, j'ai du reprendre un bout de code qui a été fait par un ancien stagiaire et je dois l'optimiser.
Je dois remplir une TreeView dynamiquement. Dans ma base de données, la table des composants a une relation sur elle même pour son "parent".
Le problème est que pour l'instant le code limite la TreeView à une profondeur de 5.

J'aimerais pouvoir optimiser le code pour que la TreeView puisse s'allonger à une profondeur infinie.

Voici un bout de code actuel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
 
                foreach (Component child2 in component.SubComponents)
                {
                    TreeNode childNode2 = new TreeNode(child2.NoSerie + " : " + child2.Designation, child2.PkComposant.ToString());
                    parentNode.ChildNodes.Add(childNode2);
                    if (child2.PkComposant == motcle) { selectedNode = childNode2; }
                    childNode2.ToolTip = child2.NoArticle;
 
                    foreach (Component child3 in child2.SubComponents)
                    {
                        TreeNode childNode3 = new TreeNode(child3.NoSerie + " : " + child3.Designation, child3.PkComposant.ToString());
                        childNode2.ChildNodes.Add(childNode3);
                        if (child3.PkComposant == motcle) { selectedNode = childNode3; }
                        childNode3.ToolTip = child3.NoArticle;
 
                        foreach (Component child4 in child3.SubComponents)
                        {
                            TreeNode childNode4 = new TreeNode(child4.NoSerie + " : " + child4.Designation, child4.PkComposant.ToString());
                            childNode3.ChildNodes.Add(childNode4);
                            if (child4.PkComposant == motcle) { selectedNode = childNode4; }
                            childNode4.ToolTip = child4.NoArticle;
 
                            foreach (Component child5 in child4.SubComponents)
                            {
                                TreeNode childNode5 = new TreeNode(child5.NoSerie + " : " + child5.Designation, child5.PkComposant.ToString());
                                childNode4.ChildNodes.Add(childNode5);
                                if (child5.PkComposant == motcle) { selectedNode = childNode2; }
                                childNode5.ToolTip = child5.NoArticle;
                            }
                        }
                    }
                }

Et un exemple de la TreeView :



Est-ce que quelqu'un aurait une idée?

Merci d'avance pour votre aide.