silverlight - 验证 Silverlight DataGrid 中的新行

标签 silverlight validation datagrid service ria

我们正在使用 RIA 服务/Silverlight 4,我正在将数据网格绑定(bind)到 Context.Foo 之类的东西。

当用户尝试在必填字段等中输入空字符串时,我可以看到数据网格的验证摘要中出现验证错误,生活很美好。

但是,当我通过在 viewModel 中调用类似 Context.Foo.Add(new Foo) 的方法添加新项目时,新行出现在数据网格中,但除非用户单击单元格,否则永远不会被验证。

有没有办法让 DataGrid 验证所有项目?

最佳答案

您不需要让 DataGrid 为您验证行,而是需要验证新行绑定(bind)到的对象本身。您可以使用 Validator 类为您执行此操作。例如,假设您的对象被分配给一个名为 newRowObject 的变量,您可以执行以下操作:

List<ValidationResult> validationResults = new List<ValidationResult>();
ValidationContext validationContext = new ValidationContext(newRowObject, null, null);
bool isValid = Validator.TryValidateObject(newRowObject, validationContext, validationResults, true);

应该实现你所追求的(我强调应该,只是因为我在写这篇文章之前没有在示例中亲自检查它)。

希望这有助于...

克里斯

关于silverlight - 验证 Silverlight DataGrid 中的新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3869971/

相关文章:

silverlight - WP7 上的 POST 请求

c# - 将嵌入式视频资源作为流播放

使用 filter_var 的 PHP 验证 boolean 值

javascript - javascript中的手机或电话号码验证

WPF Datagrid 时间字段格式 hh :mm

单元格上的 WPF DataGrid 源更新已更改

c# - 使用紧凑框架 3.5 从数据网格中检索数据

Silverlight Windows Phone 7 - 使用硬件后退按钮后按钮单击事件丢失

Silverlight 3 托管

validation - 尝试在 WebSphere 9 中部署应用程序时出现 Javax 验证错误