【问题标题】:How to get the Current expanded treeviewitem in WPF如何在 WPF 中获取当前展开的树视图项
【发布时间】:2011-12-19 07:04:48
【问题描述】:

我无法获得,只有当前展开的项目。当我试图获取展开的项目时,我会从树视图中获取所有展开的项目,但我不希望这样,我需要获取点击的展开项目。

【问题讨论】:

  • clicked expanded item,你的意思是当前选中的项目吗?如果是这样,请参阅stackoverflow.com/q/1238304/464709
  • 您如何确定当前展开的项目?因为您可以扩展多个树视图项目,对吗?我猜你想要的是当前选定的项目。如果我错了,请纠正我。
  • 在树形视图中你是对的,可以展开许多项目。我面临的问题是我只需要单击特定项目时展开的项目。假设在树视图中我单击了一个根元素,例如 School 。在学校下,我们有一个“班级”作为它的孩子,然后我们有一个“学生”作为“班级”项目的孩子。所以我扩大学校时需要的是“学校”,扩大班级时需要“班级”,而“学生”当我扩展学生时。但是在这里,当我使用 treeviewitem.expand 事件扩展 Student 时,我得到了 School 和 Class ,因为当我扩展 Class 时两者都被扩展了。
  • 我之前尝试过这种方法,但在我的情况下,如果我们这样做,子节点不会出现

标签: wpf treeview wpf-controls


【解决方案1】:

您需要回复AfterExpand 事件。

通过限制点击您将键盘用户拒之门外。

编辑

对不起,那是 WinForms。这是 WPF 解决方案:

<TreeView TreeViewItem.Expanded="TreeViewItem_Expanded" />

【讨论】:

    【解决方案2】:

    请使用

     e.Handled=true; 
    

    在您的 treeViewItem.Expanded 事件处理程序中。这样它只会触发实际展开的项目,而不是到父树视图项目的冒泡路由。

    【讨论】:

    • 我们应该合并我们的答案:)
    猜你喜欢
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    • 2010-12-15
    • 1970-01-01
    • 2013-08-14
    • 2020-04-02
    相关资源
    最近更新 更多