我们刚刚将旧的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工具包引入的问题吗?
答案 0 :(得分:1)
好吧,这实际上是一个错误:
http://forums.silverlight.net/t/182569.aspx/1
我通过扩展NumericUpDown控件来修复它,如下所述:
http://silverlight.codeplex.com/workitem/4633
我确定这必须是特定于SL5工具包的错误。