WPF TreeView Children 节点未显示在 parent 焦点上

WPF TreeView Children Nodes not shown on parent focus

我在我的应用程序中使用了 TreeView 控件,但我无法理解基本概念。在某些示例中,树是这样使用的:

<TreeView>
  <TreeViewItem Header="Managers">
    <TextBlock Text="Michael" />
    <TextBlock Text="Paul" />
  </TreeViewItem>
  <TreeViewItem Header="Project Managers">
    <TextBlock Text="John" />
    <TextBlock Text="Tim" />
    <TextBlock Text="David" />
  </TreeViewItem>
</TreeView>

我用过这个,但是当我将焦点放在包含 children 的树节点上时,children 的文本消失了。此代码可能有什么问题?

我认为这个问题是由于样式问题引起的,您可以使用下面的解决方法解决这个问题。

<TreeView>
    <TreeViewItem Header="Managers">
        <TreeViewItem Header="Michael" />
        <TreeViewItem Header="Paul" />
    </TreeViewItem>
    <TreeViewItem Header="Project Managers">
        <TreeViewItem Header="John"/>
        <TreeViewItem Header="Tim" />
        <TreeViewItem Header="David" />
    </TreeViewItem>
</TreeView>

如果您出于任何原因需要使用 TextBlock,您可以这样做。

    <TreeView>
    <TreeViewItem Header="Managers">
        <TreeViewItem>
            <TreeViewItem.Header>
                <TextBlock Text="Michael" />
            </TreeViewItem.Header>
        </TreeViewItem>
        <TreeViewItem>
            <TreeViewItem.Header>
                <TextBlock Text="Paul" />
            </TreeViewItem.Header>
        </TreeViewItem>
    </TreeViewItem>
    <TreeViewItem Header="Project Managers">
        <TreeViewItem>
            <TreeViewItem.Header>
                <TextBlock Text="John" />
            </TreeViewItem.Header>
        </TreeViewItem>
        <TreeViewItem>
            <TreeViewItem.Header>
                <TextBlock Text="Tim" />
            </TreeViewItem.Header>
        </TreeViewItem>
        <TreeViewItem>
            <TreeViewItem.Header>
                <TextBlock Text="David" />
            </TreeViewItem.Header>
        </TreeViewItem>
    </TreeViewItem>
</TreeView>

对 TreeView 有一个基本的了解 this 这篇文章可能会有所帮助。