我有一个这样的TreeView:
<TreeView LostFocus="treeView_LostFocus">
<TreeViewItem Selected="treeViewItem_select"/>
</TreeView>当我使用treeViewItem_select在TreeViewItem中选择不同的项目时,它总是首先触发event treeView_LostFocus。如何仅在TreeView失去焦点时触发丢失焦点事件,而不是在触发器treeViewItem_select之前触发
ps:在treeViewItem_select的末尾制作e.Handle = true似乎不起作用。
发布于 2015-09-17 23:01:18
一种解决方案是检查KeyboardFocus是否仍在TreeView中。
private void treeView_LostFocus(object sender, RoutedEventArgs e)
{
var tv = sender as TreeView;
if (tv.IsKeyboardFocusWithin == false)
{
//Your code
}
}这样,当你的子项获得焦点时,你的代码不会被执行。只有当整个TreeView失去焦点的时候。
https://stackoverflow.com/questions/32626561
复制相似问题