动态扩展树视图

时间:2012-08-24 21:21:09

标签: wpf vb.net treeview expand treeviewitem

我使用的课程如下:

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不是TreeViewItem,而是我的DirectoryViewItem类型,请您告诉我如何解决这个问题,我想我需要改变使用TreeViewItem.Header的默认外观我可以显示项目以及执行扩展功能。你能告诉我怎么做吗? 谢谢。

1 个答案:

答案 0 :(得分:3)

  1. 使用TreeView.ItemContainerStyleIsExpanded绑定到商品的属性。
  2. 在您的商品上实施ExpandSubtree(所有需要做的就是将商品的绑定属性设置为true递归)。