[英]How to trigger TreeView LostFocus event
I have a TreeView like this: 我有一个像这样的TreeView:
<TreeView LostFocus="treeView_LostFocus">
<TreeViewItem Selected="treeViewItem_select"/>
</TreeView>
it always trigger event treeView_LostFocus
first when I select different item in TreeViewItem using treeViewItem_select
. 它总是触发事件
treeView_LostFocus
第一,当我使用树型视图中选择不同的项目treeViewItem_select
。 How can I do to trigger the lost focus event only when the the TreeView
losing focus, not before trigger treeViewItem_select
? 如何仅在
TreeView
失去焦点treeViewItem_select
不是在触发treeViewItem_select
之前触发失去焦点事件?
ps: make e.Handle = true
in the end of treeViewItem_select
seems not work. ps:在
treeViewItem_select
的末尾使e.Handle = true
似乎不起作用。
A solution is to check if the KeyboardFocus is still within the TreeView. 一种解决方案是检查KeyboardFocus是否仍在TreeView中。
private void treeView_LostFocus(object sender, RoutedEventArgs e)
{
var tv = sender as TreeView;
if (tv.IsKeyboardFocusWithin == false)
{
//Your code
}
}
That way when your child items get focus, your code won't get executed. 这样,当您的子项获得焦点时,您的代码将不会执行。 Only when the whole TreeView loses focus.
仅当整个TreeView失去焦点时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.