Bonjour à toutes et à tous,
Je vous expose mon problème. J'ai un TreeView dont le contenu (TreeNode) est chargé depuis une base de donnée. De plus, afin d'améliorer les performances, le contenu est chargé "à la demande", c'est à dire que c'est au moment on l'on clique sur un noeud, qu'on interroge la base de donnée pour en charger le contenu.
A présent, j'aimerai pouvoir utiliser une fonction de recherche sur ce TreeView, en filtrant parmis les TreeNode existants (ceux qui sont actuellement chargés) ceux qui correspondent une chaîne de caractère donnée.
La solution que je pensai la plus simple consistait à parcourir (récursivement) tous l'arbres, et à masquer les noeuds qui ne correspondent pas au motif. Malheureusement, les TreeNode n'ont pas de propriétés "Visible" qui permettrait de les masquer/afficher dynamiquement.
Il faut donc les supprimer de l'arbre. Je trouve cette solution que peut efficace, et je suis à la recherche d'une autre manière de faire cela.
J'ai notamment pensé :
- à étendre les composants TreeView / TreeNode pour inclure une propriété "Visible". Je n'ai aucune idée de la quantité de travail que cela nécessite
- de recharger l'ensemble du TreeView depuis la base de donnée, en donnant la contrainte de recherche dans les requêtes de la base
Bref, je suis un peu perdu, et j'aimerai vraiment une solution propre et efficace. Merci d'avance pour votre aide,
Jérémy
Partager