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