1

古い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ツールキットで導入された問題ですか?

4

1 に答える 1

1

OK、これは実際にはバグのようです。

http://forums.silverlight.net/t/182569.aspx/1

ここで説明するように、NumericUpDownコントロールを拡張することで修正しました。

http://silverlight.codeplex.com/workitem/4633

これはSL5ツールキットに固有のバグであるに違いありません。

于 2012-04-04T12:26:03.637 に答える