我使用以下TreeView
控件和HierarchicalDataTemplate
。 Code Behind中的属性DataList
使用包含三个条目的典型列表List<Foo>
进行初始化:对象a
,b
,c
,如进一步显示下来。
到目前为止一切顺利。如果我尝试获取代表对象TreeViewItem
的{{1}}对象,我会在代码隐藏中使用这种方式而不会成功。
a
问题是,System.Int32 indexOfObjectA = 0;
TreeViewItem treeViewItem = treeViewControl.ItemContainerGenerator.ContainerFromIndex(indexOfObjectA) as TreeViewItem;
始终为空。我的主要目标是获得我可以调用方法treeViewItem
的顶级TreeViewItem
,将属性Focus()
设置为true,最后但不是最少调用方法{{ 1}}。结果应该是IsSelected
中的第一个BringIntoView()
将被选中。
我的XAML定义:
TreeViewItem
我的TreeView
属性绑定到对象<TreeView x:Name="treeViewX" ItemsSource="{Binding DataList">
<TreeView.Resources>
<HierarchicalDataTemplate x:Name="HierarchicalDataTemplateTreeView" DataType="{x:Type namespaceX:Foo}" ItemsSource="{Binding Children}">
...
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
的{{1}}属性。对象ItemsSource
拥有字典对象Children
,其中包含要呈现的数据。
Foo
初始化如下。
Foo
我做错了什么?谢谢你的帮助。