WPF在单击鼠标时展开TreeView

Sap*_*huA 7 wpf treeview double-click

我有一个带有HierarchicalDataTemplate的WPF TreeView.

目前,我必须双击一个项目才能展开/折叠它.

我想将此行为更改为单击,而不会丢失其他功能.所以它应该在点击时展开和折叠.

建议的方法是什么?

谢谢!

Dar*_*ren 5

您可以使用重新模板化的复选框作为节点(包含您当前使用的任何模板),并将其 IsChecked 属性绑定到 TreeViewItem 的 IsExpanded 属性。

这是我刚刚测试的一个模板,它似乎可以完成这项工作:

<HierarchicalDataTemplate ItemsSource="{Binding Items}">
    <CheckBox IsChecked="{Binding RelativeSource={RelativeSource AncestorType=TreeViewItem}, Path=IsExpanded}">
        <CheckBox.Template>
            <ControlTemplate>
                <TextBlock Text="{Binding Header}"></TextBlock>
            </ControlTemplate>
        </CheckBox.Template>
    </CheckBox>
</HierarchicalDataTemplate>
Run Code Online (Sandbox Code Playgroud)

只需用您需要的任何内容替换 ControlTemplate 内容。