Удалить фокус из текстового поля при нажатии на родительскую сетку в MVVM - PullRequest
0 голосов
/ 21 октября 2019

У меня есть простое окно с несколькими кнопками и текстовым полем. Я хочу, чтобы когда я нажимал «Enter» на моей клавиатуре, это вызывало команду кнопки, но проблема в том, что, когда я фокусируюсь на текстовом поле, я не могу нажать «Enter», потому что он просто добавляет разрыв строки в текстовое поле. .

Я пытался привязать жест сетки LeftClick к команде, использующей клавиатуру.ClearFocus (), но я думаю, что это неправильная функция, потому что она не работала. Еще один вариант, который может сработать, но я еще не пробовал, и я не уверен, что это даже хорошая практика, - добавить x: Name в текстовое поле и отправить окно в качестве параметра для команды.

Я хочу, чтобы при щелчке по родительской сетке текстового поля фокус был удален из него, чтобы я мог нажать «Ввод», есть ли простой способ сделать это в MVVM?

1 Ответ

0 голосов
/ 21 октября 2019

Вы сказали: «Я хочу, чтобы при нажатии Enter на моей клавиатуре это вызывало команду кнопки»

Вы пытались добавить InputBindings в текстовое поле?

<TextBox.InputBindings>
    <KeyBinding Key="Return" Command="{Binding YourCommand}" CommandParameter="{Binding Path=Text, RelativeSource={RelativeSource AncestorType={x:Type TextBox}}}"/>
</TextBox.InputBindings>    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...