0

我在 WPF 应用程序中使用 mvvm 模式并使用 integerupdown 按钮。
要调用命令,目前我正在使用 ValueChanged 触发器,如下所示 -

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

当用户使用鼠标单击向上或向下箭头更改值时,这非常有效。
问题是当用户想要输入文本框时,每个输入的字符都会触发该事件。相反,我希望允许用户输入数字并仅在按 Enter 时触发命令。

请建议。

4

2 回答 2

0

如果在每个 KeyStroke 上触发 ValueChanged,则您的 Bindings UpdateSourceTrigger可能设置为默认值 (ValueChanged)。首先将其设置为 LostFocus。此外,使用 EventTrigger 捕获 KeyDown 事件并检查按下的键是否是 Enter 键。如果它是回车键,那么只需调用您的命令。

编辑:如果您需要 Commit-On-Enter-scenarios 的可重用解决方案,请查看此问题

于 2018-10-30T10:35:08.647 回答
0

找到一个属性 - UpdateValueOnEnterKey="True"。这不会在每个字符更改时调用更改的值,而只会在 Enterkey 按下时调用

于 2018-11-13T16:22:30.507 回答