1

我们刚刚将旧的 Silverlight 4 应用程序迁移到 Silverlight 5 并注意到我们的一个 Dataforms 存在问题。有问题的 Dataform 包含来自 SL5 工具包的 NumericUpDown 控件。我们注意到 CommitEdit 在以下情况下似乎没有触发(即它返回 false):

1) 打开包含 DataForm 的弹出窗口

2) 通过单击向上或向下箭头更改 NumericUpDown 控件中的值。

3) 单击连接到 Dataform 的 Save 按钮。

连接保存按钮的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 it appears that this is actually a bug:

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

I have fixed it by extending the NumericUpDown control as described here:

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

I'm sure this must be a bug specific to the SL5 toolkit.

于 2012-04-04T12:26:03.637 回答