私はSilverlightControlToolkitのNumericUpDownコントロールを使用しています。これは、1回の更新でValueChangingイベントを2回トリガーすることがあります(上ボタンまたは下ボタンを1回クリックするだけです)。この動作の回避策を知っている人はいますか?
詳細:
次の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");
}
}
エラーは常に発生するわけではありませんが、イベントが2回発生し、合計が3の場合でもアラートが発生することがあります...たとえば(常に発生するわけではありません):最初のイベントを2に増やします。次に1秒に1、3番目に。メッセージが表示され、それは正しいです。最初の値を1に減らし、3番目の値を1に増やすと、イベントが2回トリガーされるため、メッセージが発生します...(これも常に発生するわけではありません)