Я использую элемент управления NumericUpDown из Silverlight Control Toolkit, который иногда запускает событие 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, он сгенерирует сообщение, потому что событие запускается дважды ... (опять же, не всегда, когда это происходит)