Вызов команды 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. Если это клавиша ввода, просто вызовите вашу команду.
Изменить: если вам нужно многоразовое решение для коммит-сценариев, взгляните на этот вопрос.