2009-05-29 8 views
2

Je suis certain que cela a déjà été soulevé, mais je n'ai pas été en mesure de trouver la réponse.Comment faire pour synchroniser un SelectedItem TreeView et ListBox?

J'ai créé un ViewModel de base qui contient une liste de personnes (un tableau de personnes) avec une propriété appelée SelectedPerson, qui pointe naturellement vers la personne actuellement sélectionnée dans la liste des personnes. J'ai également un ListBox et un TreeView qui sont databound à la liste de personnes de ViewModel.

Ce que je voudrais faire est de garder la SelectedValue de ListBox et SelectedItem de TreeView en synchronisation avec SelectedPerson du ViewModel. L'idée est que peu importe comment le SelectedPerson est modifié (à travers un contrôle, par le code, etc.), tous les contrôles devraient se mettre à jour correctement. Je peux le faire fonctionner avec deux ListBox, ce qui est sympa, mais je n'arrive pas à le faire fonctionner avec un ListBox et un TreeView parce que le SelectedItem de TreeView est en lecture seule et apparemment indisponible via XAML.

Où devrais-je chercher des idées pour que cela fonctionne?

Notez également que j'essaye de faire fonctionner ceci en pur XAML. Aucun code-behind en tant que fichiers XAML dans mon application peut être chargé et modifié dynamiquement.

Merci!

Répondre

2

Vous pouvez utiliser Selector.IsSyncronizedWithCurrentItem.

Vous pouvez lier à la fois thbox listbox et treeview à la même source de données et assurez-vous que le paramètre IsSyncronized est défini sur true. Ensuite, les modifications apportées à l'élément actuel dans l'un seront répercutées dans l'autre.

Plus d'informations peuvent être trouvées ici:

link text

+1

Salut Midas! J'ai examiné votre suggestion, mais il semble que TreeView n'a pas cette propriété. – djcouchycouch

Questions connexes