Dataform和工具包Silverlight 5中的NumericUpDown按预期工作

问题描述:

我们刚刚将旧Silverlight 4应用程序迁移到Silverlight 5,并注意到我们的某个DataForms存在问题。相关的Dataform包含SL5工具包中的NumericUpDown控件。我们已经注意到,commitEdit的似乎不火(即返回false)在以下情形:Dataform和工具包Silverlight 5中的NumericUpDown按预期工作

1)打开包含数据形

2)改变由NumericUpDown控件的值弹出窗口或者点击向上或向下箭头。

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

连接到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工具包引入的问题吗?

OK看来,这其实是一个错误:

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

这里描述我已经通过扩展NumericUpDown控件固定它:

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

我敢肯定,这必须是特定于SL5工具包的错误。

+0

其实我认为这个bug也存在于SL4工具包中。我们在SL4应用程序中没有看到它的原因是,一旦激活,我们总是将焦点设置到弹出窗口中的第一个字段。 – 2012-04-04 12:47:50