在WPF TreeView中更改ToggleButton的SelectedItem事件

时间:2014-12-09 06:36:33

标签: c# wpf treeview togglebutton

我有Simple TreeView

XAML:

<StackPanel >
    <TextBlock Text="Simple TreeView with 3 level hierarchy" />
    <TreeView >
        <TreeViewItem Header='Heading 1'>
            <TreeViewItem Header='SubHeading 1.1'>
                <TreeViewItem Header="Leaf 1.1.1"/>
                <TreeViewItem Header="Leaf 1.1.2"/>
            </TreeViewItem>
            <TreeViewItem Header='SubHeading 1.2'>
                <TreeViewItem Header="Leaf 1.2.1"/>
                <TreeViewItem Header="Leaf 1.2.2"/>
            </TreeViewItem>
            <TreeViewItem Header='SubHeading 1.3'/>
            <TreeViewItem Header='SubHeading 1.4'/>
        </TreeViewItem>
        <TreeViewItem Header='Heading 2'>
            <TreeViewItem Header='SubHeading 2.1'/>
            <TreeViewItem Header='SubHeading 2.2'/>
            <TreeViewItem Header='SubHeading 2.3'/>
            <TreeViewItem Header='SubHeading 2.4'/>
        </TreeViewItem>
    </TreeView>
</StackPanel>

当前行为

  • 假设 SubHeading 1.2 当前已选中,其展开按钮已展开。
  • 如果我点击标题2 的切换按钮,它将会展开,但 SubHeading 1.2 仍将是当前所选的项目。
  • 但如果我点击标题1 的切换按钮进行折叠,其所有子标题都将折叠,标题1 将成为所选项目。

预期行为

  • 我希望标题1 成为当前选定的项目,而不是 SubHeading 1.2 作为所选项目,即使它已折叠。

即。在父节点的这种折叠上,它触发SelectedItemChanged事件,将当前SelectedItem更新为父节点。如何使Selected节点与子节点保持完整并且不更新它?

0 个答案:

没有答案