如何在WPF中获取当前展开的树视图项

12 浏览
0 Comments

如何在WPF中获取当前展开的树视图项

我无法获得,只能获得当前展开的项目。当我尝试获取展开的项目时,我获得了树状视图中所有展开的项目,但我不想要那些,我需要获取点击的展开项目。

0
0 Comments

问题的原因:在WPF中,想要获取当前展开的TreeViewItem,需要响应AfterExpand事件。通过限制只响应点击事件,就无法满足键盘用户的需求。

解决方法:在WPF中,可以通过订阅TreeViewItem.Expanded事件来实现获取当前展开的TreeViewItem。


然后,可以在对应的事件处理方法中获取到当前展开的TreeViewItem。

0
0 Comments

问题原因:在WPF中,当一个TreeViewItem展开时,它的父级TreeViewItem也会收到展开事件。这可能导致问题,因为我们只想处理当前展开的TreeViewItem,而不是所有父级TreeViewItem。

解决方法:在TreeViewItem的展开事件处理程序中使用e.Handled=true;。这样只有当前展开的TreeViewItem会触发事件,而不会冒泡到父级TreeViewItem。

下面是示例代码:

private void TreeViewItem_Expanded(object sender, RoutedEventArgs e)
{
    // 阻止事件冒泡到父级TreeViewItem
    e.Handled = true;
    // 处理当前展开的TreeViewItem
    TreeViewItem expandedItem = (TreeViewItem)sender;
    // 其他处理逻辑
}

这样,我们就可以通过使用e.Handled=true;来获取当前展开的TreeViewItem,并且不会受到父级TreeViewItem的干扰。

0