У меня есть простой диалог WPF с этими двумя элементами управления:
<TextBox Text="{Binding MyText}"/>
<Button Command="{Binding MyCommand}" IsDefault="True"/>
Теперь, когда я ввожу некоторый текст в TextBox и нажимаю кнопку с помощью мыши, все работает так, как ожидалось: TextBox будет вызывать MyText и MyCommand.
Но когда я ввожу какой-то текст и нажимаю кнопку "click" по умолчанию, это не работает. Так как при попадании в фокус не покидает TextBox, привязка не будет обновлять MyText. Поэтому, когда MyCommand вызывается (который работает), MyText будет содержать старые данные.
Как это исправить в MVVM? В классическом кодировании я, вероятно, просто назвал бы "MyButton.Focus()" в обработчике MyCommand, но в MVVM обработчик MyCommand ничего не знает о кнопке.
Итак, что теперь?