【发布时间】:2010-12-20 11:42:47
【问题描述】:
我正在尝试编写一个事件处理程序,每次 TreeView 中的节点获得焦点时都会触发该事件处理程序。我遇到的问题是事件处理程序在我用鼠标单击的 TreeViewItem (节点)上触发,然后它继续冒泡控制树,即使我设置了 e.Handled = true on提供给处理程序的 RoutedEventArgs。有人知道问题可能是什么吗?我仔细检查了我的代码,我看不出为什么会发生这种情况。
【问题讨论】:
我正在尝试编写一个事件处理程序,每次 TreeView 中的节点获得焦点时都会触发该事件处理程序。我遇到的问题是事件处理程序在我用鼠标单击的 TreeViewItem (节点)上触发,然后它继续冒泡控制树,即使我设置了 e.Handled = true on提供给处理程序的 RoutedEventArgs。有人知道问题可能是什么吗?我仔细检查了我的代码,我看不出为什么会发生这种情况。
【问题讨论】:
当您真正想要 TreeViewItem.Selected 时,您是否使用 TreeView.GotFocus?
<TreeView TreeViewItem.Selected="treeView1_Selected" />
如果您真的想要焦点,请改用 TreeViewItem.Focus,以便以项目而不是整个树为目标。
<TreeView TreeViewItem.GotFocus="treeView1_GotFocus"/>
【讨论】: