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