Вызов команды WPF для IntegerUpDown (расширенный инструментарий WPF)

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

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

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

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

2 ответа

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

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

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

Другие вопросы по тегам