如果您将 Silverlight Toolkit NumericUpDown 控件绑定到 MVVM 属性和 RelayCommand 触发器集(任何事件),则在 NumericUpDown 更改 MVVM 属性值之前调用该命令。这意味着,您不能在方法/操作/命令中使用新的(更改的)值...
XAML:
<inputToolkit:NumericUpDown x:Name="testNum" Value="{Binding RegisterForm, Mode=TwoWay}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="ValueChanged">
<GalaSoft_MvvmLight_Command:EventToCommand Command="{Binding DoSomethingCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</inputToolkit:NumericUpDown>
MVVM (C#):
DoSomethingCommand = new RelayCommand(() =>
{
OtherRegisterForm = RegisterForm;
});
在这种情况下,如果您的 v 值为 0,并且您在 NumericUpDown 控件中输入了一个新值 123,它会在 MVVM 属性上的“RaisePropertyChange”事件之前触发“DoSomethingCommand”。“OtherRegisterForm”将是 0 而不是 123。
有没有办法使这项工作?