Вызов команды WPF для IntegerUpDown (расширенный инструментарий WPF) - PullRequest
0 голосов
/ 30 октября 2018

Я использую шаблон mvvm и использую кнопку integerupdown в приложении WPF.
Для вызова команды в настоящее время я использую триггер ValueChanged следующим образом -

    <i:Interaction.Triggers>
         <i:EventTrigger EventName="ValueChanged">
               <i:InvokeCommandAction Command="{Binding PercentChangedCommand}" />
         </i:EventTrigger>
    </i:Interaction.Triggers>

Это прекрасно работает, когда пользователь изменяет значение с помощью щелчка мыши на стрелке вверх или вниз.
Проблема заключается в том, что в тот момент, когда пользователь хочет ввести текстовое поле, событие запускается для каждого введенного символа. Вместо этого я хочу разрешить пользователю вводить цифры и запускать команду только при нажатии клавиши Enter.

Пожалуйста, предложите.

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Найдено свойство - UpdateValueOnEnterKey = "True". Это не будет вызывать изменение значения при каждом изменении символа, но только при нажатии клавиши Enter

0 голосов
/ 30 октября 2018

, если ValueChanged запускается при каждом нажатии клавиши, тогда ваши привязки UpdateSourceTrigger , скорее всего, установлены по умолчанию (ValueChanged). Начните с установки его в LostFocus. Дополнительно перехватите событие KeyDown с помощью EventTrigger и проверьте, была ли нажата клавиша Enter-Key. Если это клавиша ввода, просто вызовите вашу команду.

Редактировать: если вам нужно многоразовое решение для коммит-сценариев, посмотрите на этот вопрос .

...