Silverlight NumericUpDown ValueChanging触发两次

我正在使用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,然后增加到第二个,第一个增加到第三个。显示一条消息,它是正确的。将firt减少到1,如果你将第三个增加到1,它将触发消息,因为事件被触发两次......(同样,并非所有时间都发生这种情况)     
已邀请:
NumericUpDown使用RepeatButton,它可以多次触发click事件。如果您的NumericUpDown控件不需要非常高(例如,您发布的示例中它不接受大于3的总和)您可以更改控件的模板以使用Button。 注意:我尝试仅更改SpinnerStyle模板,但这不起作用。我不得不更改NumericUpDown样式,并指向我修改后的SpinnerStyle版本     
我认为
MessageBox
本身的模式性质正在引入问题。使用您的代码我可以重现问题。我也可以得到它,这样当总数只有0或1时,单击一个框可以使它跳到3。 然而,当我拿出
MessageBox
时,一切都按预期工作。     

要回复问题请先登录注册