我正在使用 Silverlight Control Toolkit 中的 NumericUpDown 控件,它有时会在一次更新时触发两次 ValueChanging 事件(仅单击一次上部或向下按钮)。有人知道这种行为的任何解决方法吗?
更多信息:
我有以下 xaml:
<StackPanel>
<toolkit:NumericUpDown Name="numericUpDown1"
Width="35"
Minimum="0"
Maximum="3"
ValueChanging="valueChanging" />
<toolkit:NumericUpDown Name="numericUpDown2"
Width="35"
Minimum="0"
Maximum="3"
ValueChanging="valueChanging" />
<toolkit:NumericUpDown Name="numericUpDown3"
Width="35"
Minimum="0"
Maximum="3"
ValueChanging="valueChanging" />
</StackPanel>
以及事件的代码:
private void valueChanging(object sender, RoutedPropertyChangingEventArgs<double> e)
{
if (numericUpDown1.Value + numericUpDown2.Value + numericUpDown3.Value > 3)
{
e.Cancel = true;
MessageBox.Show("No more than 3 in total");
}
}
错误并非总是出现,但有时事件会被触发两次,即使我只有 3 的总和也会发出警报......例如(并非所有时间都发生):第一个增加到 2,然后第二个到 1,第三个到 1。显示一条消息并且它是正确的。将第一个减小到 1,如果将第三个增加到 1,它将触发消息,因为该事件被触发了两次......(同样,并非总是发生这种情况)