古いSilverlight4アプリをSilverlight5に移行したところ、データフォームの1つに問題があることに気づきました。問題のデータフォームには、SL5ツールキットのNumericUpDownコントロールが含まれています。次のシナリオでは、CommitEditが起動していないように見える(つまり、falseを返す)ことに気づきました。
1)DataFormを含むポップアップウィンドウを開きます
2)上矢印または下矢印をクリックして、NumericUpDownコントロールの値を変更します。
3)データフォームに接続されている[保存]ボタンをクリックします。
[保存]ボタンに接続されているClickイベントコードは次のとおりです。
private void OKButton_Click(object sender, RoutedEventArgs e)
{
if (updateUserDataForm.ValidateItem())
updateUserDataForm.CommitEdit(true);
else
updateUserDataForm.CancelEdit();
}
XAMLは次のとおりです。
<toolkit:DataField Label="Display Order" LabelStyle="{StaticResource LabelStyles}" HorizontalAlignment="Left">
<toolkit:NumericUpDown Minimum="1" Maximum="200" Value="{Binding DisplayOrder, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" ValueChanged="NumericUpDown_ValueChanged"/>
</toolkit:DataField>
[保存]ボタンをクリックする前に、最初にフォームフォーカスに別のコントロールを与えると、CommitEditは正常に機能します。SL 4ツールキットのDatFormおよびNumericUpDownコントロールを使用していたときは、このような動作はありませんでした。これはSL5ツールキットで導入された問題ですか?