我有一个通过HierarchicalDataTemplate绑定的TreeView
<HierarchicalDataTemplate x:Key="HierachrTree" DataType="{x:Type src:Ordner}" ItemsSource="{Binding UnterOrdner}">
<TextBlock Text="{Binding OrdnerName}"/>
</HierarchicalDataTemplate>
这就是我的TreeView:
<TreeView Name="DokumentBrowser" ItemTemplate="{StaticResource HierachrTree}"
现在我想获取第一个节点并将IsExpanded属性设置为false。
我试过这种方式
ItemCollection ic = DokumentBrowser.Items;
TreeViewItem tvi = (TreeViewItem)ic.GetItemAt(0);
tvi.IsExpanded = false;
但我无法将Object强制转换回TreeViewItem以获取IsExpanded属性。
答案 0 :(得分:6)
TreeView.Items
是数据对象的集合,而不是TreeViewItems的集合。您可以使用ItemContainerGenerator来获取从数据对象到作为容器的TreeViewItem的映射。
TreeViewItem tvi =
(TreeViewItem) DokumentBrowser.ItemContainerGenerator.ContainerFromIndex(0);
如果您从数据对象而不是索引开始,则可以使用ContainerFromItem:
TreeViewItem tvi =
(TreeViewItem) DokumentBrowser.ItemContainerGenerator.ContainerFromItem(
DokumentBrowser.Items.GetItemAt(0));