代码之家  ›  专栏  ›  技术社区  ›  Mark

wpf c获取树视图的根节点

  •  1
  • Mark  · 技术社区  · 14 年前

    我有一个通过层次结构数据模板绑定的树视图

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

    这是我的树视图:

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

    现在我想获取第一个节点并将isexpanded属性设置为false。

    我试过这个方法

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

    但我无法将对象强制转换回TreeView项以获取ISexpanded属性。

    1 回复  |  直到 14 年前
        1
  •  6
  •   Quartermeister    14 年前

    TreeView.Items 是数据对象的集合,而不是TreeView项的集合。你可以使用 ItemContainerGenerator 获取从数据对象到作为容器的TreeView项的映射。

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

    如果从数据对象而不是索引开始,则可以使用ContainerFromItem:

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