Comment puis-je obtenir tous les nœuds développés dans le treeview?
J'ai un programme qui contient une Arborescence. Tous mes nœuds sauf pour la racine et de deux nœuds en vertu de la racine sont chargées à partir d'une base de données.
Lorsque l'utilisateur ajoute des données à la base de données, il doit être automatiquement ajouté à l'Arborescence. Je peux réussir à le faire en désactivant tous les nœuds, ajouter de la valeur par défaut de noeuds et d'ajouter toutes les données, y compris la nouvelle à mon TreeView, mais tous les nœuds de la nouvelle Arborescence sont effondrés.
Notre client souhaite conserver tous les nœuds développés, mais encore ajouter les nouvelles données, il a juste ajouté. Est-il possible de connaître tous les nœuds développés et de l'étendre encore une fois replié ou actualisé? Merci pour toute réponse.
- Pa-post po ng codes. Des exemples de codes. :p
- Pourquoi avez-vous besoin pour effacer et ajouter de nouveau au lieu de simplement ajouter/modifier un nœud unique? Si vous avez des milliers de nœuds de votre programme va...
- Qu'est-ce exactement vous devez savoir que vous voulez enregistrer, vous nœud d'arborescence de la collection avant de les éclaircir et de les retournant ensuite l'apparence d'....
Vous devez vous connecter pour publier un commentaire.
Salut, Comme je comprends, vous voulez vous épargner la vue de l'arborescence de la carte une fois que vous actualisez la vue de l'arborescence (par l'ajout de nouvelles données ou même de supprimer certains) que vous souhaitez développer tous les nœuds développés les autres sont réduits par défaut.
La Solution est:
1) enregistrer étendue de l'arborescence de nœuds de la vue avant d'actualisation
2) actualiser la vue de l'arborescence des données (notez que si vous êtes à la suppression d'un nœud , le retirer de liste enregistrée en tant que bien)
3) affichage de l'arborescence de la carte qui a sauvé avant
d'économie d'affichage de l'arborescence de la carte (n'a augmenté que de nœuds)->
Ce Code Regarder à travers un nœud d'arborescence de collecte et enregistre les nœuds développés Noms dans une liste de chaînes
Maintenant que vous avez recueillies nœuds développés nom dans une liste et vous souhaitez obtenir le retour de votre arborescence apparence vous avez besoin de 2 fonctions une fonction qui récupère nœud par un nom et une fonction qui se dilatent nœud sélectionné et c'est les parents les codes suivants ne :
Cette fonction récupère un pointeur sur un nœud choisi Nom si le nœud est exister dans le Nœud de l'Arborescence de la Collection
et Cette Fonction Développez le nœud et ses parents
et la suite vous montrer l'utilisation des fonctions
Pour le développement de toutes les nœuds utilisent code ci-dessous
Pour l'expansion du nœud sélectionné utilisez code ci-dessous
Pour l'expansion de nœud particulier l'utilisation de code ci-dessous
Assumer les Nodename est unique.
Seulement d'économiser de l'expandedstate
Laisser le treeview faire le travail de trouver les nœuds pour restaurer
À l'aide de:
Simplement développez les nœuds, vous pouvez essayer ce code suivant
Espère que ça aide
C'est très simple. Ci-dessous, vous pouvez voir mon une version récursive:
Je sais que ce post est vieux, mais si l'arbre est profonde, il peut ne pas être une bonne idée d'utiliser un appel récursif de la traversée de l'arbre. Depuis je n'ai vu aucune réponse à l'aide d'une façon non-récursive voici une solution pour faire nœuds développés sans impact sur les performances.
Pour utiliser cette méthode, vous pouvez effectuer les opérations suivantes:
Ce méthode d'extension utilise Deep-Première traversée de l' dans post-ordre avec le mot clé yield pour générer un Collection IEnumerable.