Ceci est un System.Windows.Forms.TreeView, pas un WPF ou un TreeView Web.Chargement différé de TreeView dans .NET
Je dois manquer quelque chose, car je ne peux pas croire que ce soit si difficile.
J'ai un TreeView sur mon formulaire. Le chargement de toutes les données pour peupler TreeView est très lent, donc je veux charger seulement les nœuds de niveau supérieur et remplir les enfants au fur et à mesure que l'utilisateur développe des nœuds. Le problème est que si un nœud n'a pas d'enfants, il n'affiche pas le signe + à côté du nœud, ce qui signifie qu'il ne peut pas être étendu, ce qui signifie que je ne peux pas capturer un événement Expanding pour charger les enfants . Il y a quelques années, lorsque j'utilisais PowerBuilder, vous définissiez une propriété HasChildren (ou similaire) sur true pour «mentir» au contrôle et le forcer à afficher le + et vous pouviez alors capturer l'événement Expanding. Je n'ai pas été capable de comprendre comment forcer un + à apparaître sur un nœud lorsqu'il n'y a pas de nœuds enfants. J'ai essayé une approche où j'ajoute un nœud fictif à chaque nœud puis en vérifiant si le nœud fictif est présent et l'enlève puis charge les enfants, mais pour diverses raisons qui ne valent pas la peine d'entrer ici cette solution n'est pas viable dans ma situation. J'ai recherché sur google pour différentes combinaisons de C#, treeview, retardé, différé, charge, force, expansion, et quelques autres termes qui m'échappent maintenant sans chance.
P.S. J'ai trouvé le projet TreeViewAdv sur SourceForge, mais je préfère ne pas introduire un nouveau composant dans notre environnement si je peux l'éviter.
J'ai toujours utilisé la méthode du noeud factice; ça marche plutôt bien. Pouvez-vous nous en dire plus sur les raisons pour lesquelles cela ne fonctionnera pas pour vous? – Charlie