Silverlight NumericUpDown值更改触发两次

Silverlight NumericUpDown值更改触发两次,silverlight,silverlight-toolkit,numericupdown,Silverlight,Silverlight Toolkit,Numericupdown,我正在使用Silverlight control Toolkit中的NumericUpDown控件,它有时会在一次更新中触发两次ValueChanged事件(只单击一次upper.或down按钮)。有人知道这种行为有什么原因吗 更多信息: 我有以下xaml: <StackPanel> <toolkit:NumericUpDown Name="numericUpDown1" Width="35

我正在使用Silverlight control Toolkit中的NumericUpDown控件,它有时会在一次更新中触发两次ValueChanged事件(只单击一次upper.或down按钮)。有人知道这种行为有什么原因吗


更多信息:
我有以下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");
        }
    }
私有无效值更改(对象发送方,RoutedPropertyChangingEventArgs e)
{
如果(numericUpDown1.Value+numericUpDown2.Value+numericUpDown3.Value>3)
{
e、 取消=真;
MessageBox.Show(“总共不超过3个”);
}
}
错误并非总是出现,但有时事件会触发两次,即使我只有3次的总和,警报也会出现。。。 例如(并非所有时间都发生):
第一个增加到2,第二个增加到1,第三个增加到1。将显示一条消息,该消息是正确的。将第一个减少到1,如果将第三个增加到1,它将触发消息,因为事件会触发两次。。。(同样,并非每次都会发生这种情况)

我认为是
消息框本身的模态特性导致了问题。用你的代码我可以重现这个问题。我还可以得到它,这样当总数只有0或1时,单击一个框可以使它跳到3


然而,当我取出
MessageBox
时,一切都按预期工作。

我认为是
MessageBox
本身的模态特性导致了问题。用你的代码我可以重现这个问题。我还可以得到它,这样当总数只有0或1时,单击一个框可以使它跳到3


但是,当我取出
消息框时,一切都按预期进行。

NumericUpDown使用一个重复按钮,可以多次触发单击事件。如果您的NumericUpDown控件不需要非常高(如您发布的示例中所示,它不接受大于3的总和),您可以将控件的模板更改为使用按钮


注意:我尝试只更改喷丝头样式模板,但没有成功。我不得不更改NumericUpDown样式,指向我修改过的SpinnerStyle版本

NumericUpDown使用了一个可多次触发click事件的RepeatButton。如果您的NumericUpDown控件不需要非常高(如您发布的示例中所示,它不接受大于3的总和),您可以将控件的模板更改为使用按钮


注意:我尝试只更改喷丝头样式模板,但没有成功。我必须更改NumericUpDown样式,并且指向我修改的喷丝头样式版本

我无法重现此问题,您能否提供更多详细信息。信息扩展为更多信息,提前感谢。感谢Anthony提供该版本…:)我无法重现此问题,您能提供更多详细信息吗。信息扩展为更多信息,提前感谢。感谢Anthony提供该版本…:)