Comment puis-je lier un objet à un nœud d'arbres (Winforms) en C #? P>
J'ai pensé à quelque chose comme Exnode: windows.forms.node qui peut prendre un objet en tant que membre en dehors du nom de Treenode ... Cependant, je ne suis pas sûr que c'est la bonne approche. P>
4 Réponses :
Vous cherchez quelque chose comme la propriété Tag sur Treenodes? Il peut contenir n'importe quel objet. P>
http://msdn.microsoft .com / fr-US / bibliothèque / system.windows.forms.treenode.tag.aspx p>
IMHO Vous avez plusieurs stratégies:
Collez un objet de tout type dans la propriété Tag de n'importe quel nœud: Inverside: vous devrez le renvoyer à sa «forme native» lorsque vous le récupérez pour l'utiliser: si cette «forme native» est tout sauf de type 'objet. p> li>
sous-classe Treenode et ajoutez des champs publics, des propriétés publiques ou autre, pour vos objets ... ou même la liste ... ou tout ce que vous devez vous associer au nœud. p> li>
supposer que vos objets sont du même type, vous pouvez créer un dictionnaire de type: Dictionnaire stratégies n ° 1 et n ° 3 ont l'avantage que vous pouvez stocker un objet associé uniquement en tant que stratégie nécessaire n ° 2: est plus adapté au cas où vous prévoyez que chaque Treenode va avoir un objet associé ( s) Stratégie # 1 est un test facile: si la tagite Protective du nœud est NULL: vous savez qu'il n'y a pas d'objet: sinon null ... et il peut y avoir plus d'un type d'objet stocké dans le champ Tag ... alors LL Doit retirer l'objet Tag et vous assurer que c'est le type de bon type comme dans: (L'exemple qui suit suppose une classe publique, "CLASS1", a été attribué à la balise du premier nœud de l'arborescence: p> stratégie n ° 3 est un peu plus facile puisque vous pouvez simplement évaluer si le dictionnaire
Je pense que c'est une tenue d'objet plutôt que de "reliure".
Cet article de MSDN a une bonne information, par exemple:
class myTreeNode : TreeNode { public string FilePath; public myTreeNode(string fp) { FilePath = fp; this.Text = fp.Substring(fp.LastIndexOf("\\")); } }
Vous pouvez regarder dans le TRELISTVIEW . Ce n'est pas parfait, mais cela fonctionne très bien et fait le processus d'affichage des objets dans une vue d'arborescence beaucoup plus facile que tout autre moyen que j'ai trouvé. P>