我得到一个datagrid(dg)
,它与一个可观察的POCO [Name(string), value(int), isReady(bool)]
我需要让名称可编辑,以便DataGrid
<data:DataGridTemplateColumn.CellEditingTemplate>
包含TextBox
。
提交编辑时,我需要调用WCF服务来验证名称。这就是我在CellEditEnded中所做的事情。
但是当名称无效时,我该怎么做:
这就是我无法在POCO中验证的原因:
DataGrid
处于编辑模式TextBox
。我现在处于编辑模式assynchronous validation
已启动。 DataGrid
返回显示模式assync
已完成,我提出错误,但没有任何反应(视觉上我的意思),因为ValidatesOnNotifyDataError
似乎无法在标签上工作。而且,我知道有一个错误,如果我回到编辑模式,我得到一个非常奇怪的显示,告诉有1个错误,当进入这个状态时,我无法退出编辑模式,无论如何我做......
THX
答案 0 :(得分:0)
(抱歉我的英文不好) 我建议您不要使用网格事件来验证您的数据 - 在您的POCO属性设置器上执行此操作 - 它更干净,更容易保留,如果您将此POCO与另一个控件一起使用,您的验证仍然有效。
由于您需要访问服务来验证值,您最好的办法是实现INotifyDataErrorInfo接口,允许您进行异步验证,请查看此处:http://weblogs.asp.net/fredriknormen/archive/2009/11/22/silverlight-4-and-asynchronous-validation-with-inotifydataerrorinfo.aspx和http://www.silverlight.net/learn/data-networking/validation/asynchronous-data-validation