我有以下XAML:
<TreeView>
<TreeViewItem ItemsSource={Binding} Header="TopMost" IsExpanded="True">
<TreeViewItem.ItemTemplate>
<DataTemplate>
<TreeViewItem>
<TreeViewItem.Header>
<TextBlock Text="{Binding SubTopic}"/>
<TreeViewItem.Header>
<!-- further data representation -->
</TreeViewItem>
</DataTemplate>
</TreeViewItem.ItemTemplate>
</TreeViewItem>
<TreeViewItem>
</TreeViewItem>
</TreeView>
第一个TreeViewItem确实展开并显示其子节点,但是文本TopMost左侧应该可见的选择器不存在。通过双击TopMost标题,我可以让主TreeViewItem的子项进行折叠和展开。我该如何解决这个问题?
答案 0 :(得分:4)
您的XAML在默认WPF项目中工作正常,除了输入错误(我将第二个&lt; TreeViewItem.Header&gt;更改为&lt; /TreeViewItem.Header>)。当我运行它时,我看到“TopMost”一词旁边的选择器(小三角形),它可以正常工作。
我会:
注意强>
没有法律规定你不能像你正在做的那样在DataTemplates中使用TreeViewItems,但它通常不是一个好主意,因为它违背了&lt; TreeView&gt;的目的,即提供选择,焦点和对多个TreeViewItems的可访问性支持。
你会发现:
这是因为TreeView无法完成其工作:DataTemplate正在从TreeView隐藏TreeViewItems,因此它只能看到顶级项目。查看HierarchicalDataTemplate,了解如何使TreeView对象能够查看整个树。