我有一个像这样的TreeView:
<TreeView LostFocus="treeView_LostFocus">
<TreeViewItem Selected="treeViewItem_select"/>
</TreeView>
当我使用treeView_LostFocus
在TreeViewItem中选择不同的项时,它总是首先触发事件treeViewItem_select
。如果TreeView
失去焦点,而不是在触发treeViewItem_select
之前,我怎么能触发丢失的焦点事件?
ps:e.Handle = true
末尾的treeViewItem_select
似乎无效。
答案 0 :(得分:0)
解决方案是检查KeyboardFocus是否仍在TreeView中。
private void treeView_LostFocus(object sender, RoutedEventArgs e)
{
var tv = sender as TreeView;
if (tv.IsKeyboardFocusWithin == false)
{
//Your code
}
}
这样,当您的子项获得焦点时,您的代码将无法执行。只有当整个TreeView失去焦点时。