The problem is that the TextBox does not actually lose focus when the menu item is activated. Therefore, UpdateSourceTrigger LostFocus does not start. Depending on your view, the UpdateSourceTrigger PropertyChanged model may or may not be a valid workaround.
For me, PropertyChanged not an option (I need to check the data after the user has finished entering it, and not between them), so I used a workaround by calling this method to "Save file" (or any other menu / toolbar that requires an updated model):
Public Shared Sub SaveFocusedTextBox() Dim focusedTextBox = TryCast(Keyboard.FocusedElement, TextBox) If focusedTextBox IsNot Nothing Then Dim be = focusedTextBox.GetBindingExpression(TextBox.TextProperty) If be IsNot Nothing Then be.UpdateSource() End If End Sub
Several other approaches to this problem can be found in this related question:
(In fact, the credit for this method goes to the rudigrobler answer in this question.)
Heinzi
source share