WPF TreeView Effacer la Sélection
Comment pourrais-je effacer l'Arborescence de sélection au sein d'un WPF TreeView? J'ai essayé une boucle par le TreeNodes
et de compensation de la IsSelected
des biens, toutefois c'est un ReadOnly
de la propriété. Des idées?
La TreeView
est à l'aide de XML de Liaison par le biais de la XMLDataProvider
objet.
OriginalL'auteur Luke | 2009-03-24
Vous devez vous connecter pour publier un commentaire.
Je suis tombé sur exactement les mêmes problèmes et a écrit le code suivant qui fonctionne sur n'importe quel treeview, avec une seule ligne d'appel pour la première fonction.
OriginalL'auteur Tom Wright
Pas sûr de ce que tu veux dire par TreeNodes.
En général, vous avez un correspondant
IsSelected
bien sur votre modèle de vue que votre vue se lie à:Par conséquent, vous devez juste une boucle sur les éléments de données dans votre modèle de vue et de définir
IsSelected = false
.Cependant, il semble que vous n'avez pas de tels biens. Cela étant le cas, vous avez besoin correspondant à l'
TreeViewItem
pour chaque élément de données. Voir laTreeView.ItemContainerGenerator
de la propriété pour plus d'informations sur la façon de le faire. Quelque chose comme:OriginalL'auteur Kent Boogaart
Trouver l'élément sélectionné et définir la valeur:
OriginalL'auteur amaca
Cela fonctionne grand comme une extension de la méthode de sorte que vous pouvez appeler
OriginalL'auteur Gauthier
Il a été mon expérience à rester à l'écart de la norme ItemContainerGenerator appels parce qu'ils échouent sur les nœuds à une profondeur plus grande que n+1. J'utilise la combinaison de l'extension suivante méthodes ci-dessous. Le ContainerFromItem les méthodes d'extension vient d'un blog MSDN et il a fait des merveilles pour moi lorsque l'on traite avec le TreeView.
OriginalL'auteur Josh
OriginalL'auteur cpllael
Cela semble fonctionner, mais je viens de le mettre dans comme les 5 minutes il y a donc de l'utiliser à vos propres risques. Je voulais effacer la sélection lorsque l'utilisateur clique à l'intérieur de l'arbre de commande, mais pas sur un élément de l'arbre.
OriginalL'auteur Ben Dempsey
J'ai été en cours d'exécution dans cette situation moi-même avec une Arborescence personnalisée Affichage de la Liste de mise en œuvre après avoir cherché longtemps, j'ai enfin trouvé une solution qui a fonctionné pour moi.
L'explication complète peut être trouvé à http://social.msdn.microsoft.com/Forums/vstudio/en-US/36aca7f7-0b47-488b-8e16-840b86addfa3/getting-treeviewitem-for-the-selected-item-in-a-treeview
L'idée de base est de capturer l'
TreeViewItem.Selected
événement et enregistrer la source de l'événement dans leTag
attribut sur votre Arborescence. Puis, quand vous avez besoin pour la désactiver, vous pouvez accéder à laTag
attribut sur votre contrôle et de définir lesIsSelected
de la valeur à False. Cela fonctionne pour moi avec 2 niveaux d'imbrication des enfants. J'espère qu'il va travailler pour vous.Pour la persistance souci:
TreeView déclaration
Gestionnaire D'Événement
Clair logique de sélection de
OriginalL'auteur Philter
Je viens de tomber sur le même problème.
Un rapide et sale solution
OriginalL'auteur DennisWu