Ajouter une propriété à une classe

bob94700 Messages postés 69 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 7 avril 2007 - 24 avril 2006 à 09:13
bob94700 Messages postés 69 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 7 avril 2007 - 6 mai 2006 à 14:33
salut,
Je cherche à completer la classe TreeNode : en ajoutant notamment une propriété supplémentaire.
La dériver ne me parait pas le plus simple, car je crains qu'il faille redéfinir trop de choses compte tenu du Treeview parent, des évènements, des collections de noeuds ...
Alors je me demandais s'il y a un moyen ou une idée pou ajouter une nouvelle propriété à un noeud ? J'ai pensé au principe des ToolTip, mais je ne sais pas si ça va marcher un dynamique dans un programme ...
Si qqn a une idée (je vais essayer le principe des ToolTip de mon côté)...

4 réponses

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
24 avril 2006 à 09:48
L'heritage n'implique pas forcément la redéfinition de toutes les méthodes et propriétés.

::|The S@ib|:: MVP C#.NET
0
bob94700 Messages postés 69 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 7 avril 2007 4
24 avril 2006 à 18:41
eh bien je peux hériter TreeNode, et y ajouter ma propriété. Mais tout le Treeview est lui défini avec TreeNode. Il faut donc que je redéfinisse tout ce qui touche à TreeNode pour le remplacer par ma classe héritée, non ? Et compte tenu de l'imbrication de TreeNode dans TreeView, dans lui même, ça me parait un peut lourd de passer par un héritage juste pour ça ...
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
25 avril 2006 à 11:31
Hello,

Si tu hérites de treenode, tu peux ajouter tes objets sans autres au treeview, puique par la magie de l'hériage, c'est aussi un treenode.

Par contre, si tu veux récupérer tes objets dans le treeview, il faut les typecaster.

Amicalement, SharpMao
0
bob94700 Messages postés 69 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 7 avril 2007 4
6 mai 2006 à 14:33
Bonjour,
Désolé de ne pas répondre plus tôt. La solution que vous proposez devrait marcher :
l'idée est de dériver uniquement TreeNode et de laisser à l'utilisateur le soin d'ajouter le TreeNode dérivé lors de ses manip.
Je cherchais quelque chose qui me permette aussi d'empécher l'insertion d'un TreeNode "de base", c'est pourquoi la simple dérivation de TreeNode me paraissait insuffisant (d'autant que le down cast n'est possible que si l'élément est à l'origine un objet de ma classe dérivé).
Mais je tourne en rond avec ça (par exemple, on peut pas dériver TreeNodeCollection), sauf à redéfinir trop de choses ...
Ce qui aurait été bien, c'est que j'ai un évènement du genre NodeAdded(), pour intercepter l'ajout de noeuds et les passer systématiquement en noeuds dérivés ... mais bon ...

Je crois que je vais opter pour cette solution qui me parait effectivement la plus simple à ce détail près.
D'ailleurs, pour les besoins "internes" rien ne m'empèchera de remlplacer les treeNode de base en TreeNode dérivés au fil des besoins ...
Merci pour vos réponses.
0
Rejoignez-nous