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- Usa il
TreeView.ItemContainerStyle
legareIsExpanded
a una proprietà sui tuoi articoli. - Strumento
ExpandSubtree
sui tuoi articoli (tutto ciò che deve fare è impostare la proprietà associata sui tuoi articolitrue
ricorsivamente).