I have a TextBox
and a ToolBar
with a Button
. If I'm typing in the TextBox
and I click the Button
I want the TextBox
to lose Focus
so the binding gets updated. I don't want to add a UpdateSourceTrigger=PropertyChanged
to my TextBox
. But instead when I click on the Button
I reset Focus
to the main window so what ever I'm on loses Focus
and updates the bindings.
I've tried adding a OnClick
to the button with the following, but it doesn't seem to work:
private void Button_Click(object sender, RoutedEventArgs e) {
FocusManager.SetFocusedElement(this, null);
}
Any tips would be appreciated.
Thanks, Raul
I encountered a similar issue. I need to unfocus a textbox when enter is pressed. I end up with this code:
var scope = FocusManager.GetFocusScope(elem); // elem is the UIElement to unfocus
FocusManager.SetFocusedElement(scope, null); // remove logical focus
Keyboard.ClearFocus(); // remove keyboard focus
I think it is cleaner than creating dummy controls and it is reusable. I'm not confident with this solution though. But it seems work well.