2012-08-24 143 views
1

我使用的是類,如下所示:動態擴展的TreeView

Class DirectoryViewItem 
    Property Namee As String 
    Property Iconn As BitmapImage 
    Property Path As String 
    Property SubNodes As New List(Of DirectoryViewItem) 
End Class 

,我用的XAML是:

<TreeView Name="DirectoryTreeView" 
      TreeViewItem.Expanded="DirectoryTreeView_Expanded" 
      Grid.Row="0"> 
    <TreeView.ItemTemplate > 
     <HierarchicalDataTemplate ItemsSource="{Binding SubNodes}"> 
      <StackPanel Orientation="Horizontal"> 
       <Image Source="{Binding Iconn}" 
         Width="32" Height="32" 
         VerticalAlignment="Center" HorizontalAlignment="Left" /> 
       <TextBlock Text="{Binding Namee}" 
          VerticalAlignment="Center" HorizontalAlignment="Left" /> 
      </StackPanel> 
     </HierarchicalDataTemplate> 
    </TreeView.ItemTemplate> 
</TreeView> 

的代碼工作正常,現在我想擴大3或一些通過代碼X節點,我發現使用這樣的解決方案:

CType(DirectoryTreeView.Items(3), TreeViewItem).ExpandSubtree() 

然而,我發現,她CType e不是TreeViewItem,但它是我的DirectoryViewItem類型,請問我可以如何解決這個問題,我想我需要更改使用TreeViewItem.Header的默認外觀,因爲我可以顯示項目以及執行展開功能。你能告訴我我該如何做到這一點。 謝謝。

回答

3
  1. 使用TreeView.ItemContainerStyleIsExpanded綁定到您的項目的屬性。
  2. 對你的物品實施ExpandSubtree(它需要做的就是遞歸地將物品上的綁定屬性設置爲true)。
+0

請問您能否詳細告訴我,我對先進的東西有點陌生 – surpavan

+0

@surpavan:這不是先進的,真的。有關示例,請參閱[本文](http://stackoverflow.com/a/4080545/546730)。 –

+0

這工作,我看到你的鏈接之前做到了這一點。呵呵。感謝您的時間和分享信息是理解的最佳方式。非常感謝。 – surpavan