如何触发TreeView LostFocus事件
本文关键字:事件 LostFocus TreeView 何触发 | 更新日期: 2023-09-27 18:13:11
我有一个这样的TreeView:
<TreeView LostFocus="treeView_LostFocus">
<TreeViewItem Selected="treeViewItem_select"/>
</TreeView>
它总是触发事件treeView_LostFocus
首先当我选择不同的项目在TreeViewItem使用treeViewItem_select
。如何只在TreeView
失焦时触发失焦事件,而不是在触发treeViewItem_select
之前触发失焦事件?
ps: make e.Handle = true
in the end of treeViewItem_select
seems not work.
一个解决方案是检查KeyboardFocus是否仍然在TreeView内。
private void treeView_LostFocus(object sender, RoutedEventArgs e)
{
var tv = sender as TreeView;
if (tv.IsKeyboardFocusWithin == false)
{
//Your code
}
}
这样当你的子元素得到焦点时,你的代码就不会被执行。只有当整个TreeView失去焦点时。