Интересный баг/особенность про update биндига и данных во ViewModel на stackoverflow:
How not to lose binding source updates?
Что думаете, какие решения есть?
PS Кратко о проблеме:
Многие контролы апдейтят биндинг (записывают данные во ViewModel) на FocusLost. Если у вас есть Button с IsDefault=true, т.е. он будет нажиматься по кнопке ENTER, то возможен Epic Fail:
1. Диалог с текстбоксом и этой самой кнопкой Ok
2. Юзер вводит/меняет текст в этом самом тест боксе.
3. Нажимает на ENTER находясь в этом самом текстбоксе.
Результат:
Фокус не перешел, а значит новый текст НЕ ушел во ViewModel. Но кнопка нажалась и вы выполните команду со старыми данными ViewModel не соответствующими тому, что ввел и видел пользователь.