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