/ / Espandi dinamicamente treeview - wpf, vb.net, treeview, espandi, treeviewitem

Espandi dinamicamente treeview - wpf, vb.net, treeview, espandi, treeviewitem

Sto usando una classe come segue:

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

e lo xaml che ho usato è:

<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>

Il codice funziona bene, ora voglio espandere il 3 o qualche nodo x tramite codice, e ho trovato la soluzione per usare qualcosa del genere:

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

Tuttavia, ho trovato che il CType qui non lo è TreeViewItem ma è il mio DirectoryViewItem tipo, potresti dirmi come posso risolvere questo, penso che ho bisogno di cambiare l'aspetto predefinito di uso a TreeViewItem.Header per questo posso visualizzare gli oggetti e svolgere la funzione di espansione. Potresti dirmi come posso farlo? Grazie.

risposte:

3 per risposta № 1
  1. Usa il TreeView.ItemContainerStyle legare IsExpanded a una proprietà sui tuoi articoli.
  2. Strumento ExpandSubtree sui tuoi articoli (tutto ciò che deve fare è impostare la proprietà associata sui tuoi articoli true ricorsivamente).