2010-08-18 7 views
1

J'ai un TreeView qui est binded par un HierarchicalDataTemplateWPF C# Get nœud racine de TreeView

 <HierarchicalDataTemplate x:Key="HierachrTree" DataType="{x:Type src:Ordner}" ItemsSource="{Binding UnterOrdner}"> 
       <TextBlock Text="{Binding OrdnerName}"/> 
    </HierarchicalDataTemplate> 

Thats my TreeView:

<TreeView Name="DokumentBrowser" ItemTemplate="{StaticResource HierachrTree}" 

Maintenant, je veux obtenir le premier noeud et définir la IsExpanded Propriété à false.

Je l'ai essayé cette façon

 ItemCollection ic = DokumentBrowser.Items; 
     TreeViewItem tvi = (TreeViewItem)ic.GetItemAt(0); 
     tvi.IsExpanded = false; 

mais je ne peux pas jeter l'objet à un TreeViewItem pour obtenir la propriété IsExpanded.

Répondre

6

TreeView.Items est une collection d'objets de données, pas de TreeViewItems. Vous pouvez utiliser le ItemContainerGenerator pour obtenir le mappage des objets de données vers TreeViewItems qui sont les conteneurs.

TreeViewItem tvi = 
    (TreeViewItem) DokumentBrowser.ItemContainerGenerator.ContainerFromIndex(0); 

Si vous commencez avec un objet de données au lieu de l'index, vous pouvez utiliser ContainerFromItem:

TreeViewItem tvi = 
    (TreeViewItem) DokumentBrowser.ItemContainerGenerator.ContainerFromItem(
     DokumentBrowser.Items.GetItemAt(0)); 
+0

Merci! Cela fonctionne vraiment bien! – Mark

Questions connexes