【问题标题】:WPF C# Get Root Node of TreeViewWPF C#获取TreeView的根节点
【发布时间】:2010-08-18 15:57:28
【问题描述】:

我有一个通过 HierarchicalDataTemplate 绑定的 TreeView

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

但我无法将对象转换回 TreeViewItem 以获取 IsExpanded 属性。

【问题讨论】:

    标签: c# wpf treeview


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 2013-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多