Questo è un System.Windows.Forms.TreeView, non un WPF o Web TreeView.Caricamento differito di TreeView in .NET
Mi manca qualcosa, perché non posso credere che sia così difficile.
Ho una vista ad albero sul mio modulo. Caricamento di tutti i dati per popolare TreeView è molto lento, quindi voglio caricare solo i nodi di livello superiore e quindi compilare i bambini mentre l'utente espande i nodi. Il problema è che se un nodo non ha figli, non visualizza il segno + accanto al nodo, il che significa che non può essere espanso, il che significa che non è possibile acquisire un evento espandibile per caricare i bambini .
Anni fa, quando stavo usando PowerBuilder, si impostava una proprietà HasChildren (o simile) a true per essenzialmente "mentire" sul controllo e lo si forza per visualizzare il segno + e si potrebbe quindi acquisire l'evento Espansione. Non sono stato in grado di capire come forzare un + a comparire su un nodo quando non ci sono nodi figli.
Ho provato un approccio in cui aggiungo un nodo fittizio a ciascun nodo e quindi in espansione verifica se il nodo fittizio è presente e lo rimuovi quindi carico i bambini, ma per vari motivi che non vale la pena di entrare qui questa soluzione non è praticabile nella mia situazione.
Ho cercato su Google varie combinazioni di C#, treeview, ritardo, differimento, carico, forza, espansione e alcuni altri termini che mi sfuggono ora senza fortuna.
P.S. Ho trovato il progetto TreeViewAdv su SourceForge, ma preferirei non introdurre un nuovo componente nel nostro ambiente se posso evitarlo.
Ho sempre utilizzato il metodo del nodo fittizio; generalmente funziona abbastanza bene. Puoi dirci di più sul perché non funzionerà per te? – Charlie