[WPF] Sélectionner un item dans un TreeView

Publié le 23 avril 2009 par Jeremy.jeanson

Voila un problème qui semble simple à résoudre. Quand on a fait un DataBind d’un TreeView avec des objets métier, dans un premier temps on se dit qu’on va prendre la collection des items et rendre actif celui qui contient notre objet métier…

Oui mais voila, Items est une collection d’objets métier, et non pas de TreeViewItems.

Pour se sortir de cette impasse il faut  faire appel au conteneur qui va représenter notre objet dans WPF.

Vb

Dim itemTreeview As TreeViewItem = CType( _
	Me.TreeView1.ItemContainerGenerator.ContainerFromItem(item), _
	TreeViewItem)
itemTreeview.IsSelected = true;

C#

TreeViewItem itemTreeview = (TreeViewItem)
	this.TreeView1.ItemContainerGenerator.ContainerFromItem(item);
itemTreeview .IsSelected = true;

Et voila ;)