我们正在使用RIA Services / Silverlight 4,我正在将数据网格绑定到类似Context.Foo的东西。
当用户尝试将空字符串输入必填字段等时,我可以看到数据网格验证摘要中出现验证错误,生活很美好。
但是,当我通过在viewModel中调用类似Context.Foo.Add(new Foo)之类的东西来添加新项时,新行会出现在datagrid中,但除非用户单击一个单元格,否则永远不会验证。
有没有办法让DataGrid验证所有项目?
答案 0 :(得分:0)
您需要验证新行绑定的对象本身,而不是要求DataGrid为您验证行。您可以使用Validator类为您执行此操作。例如,假设您的对象被分配给名为newRowObject的变量,您可以执行以下操作:
List<ValidationResult> validationResults = new List<ValidationResult>();
ValidationContext validationContext = new ValidationContext(newRowObject, null, null);
bool isValid = Validator.TryValidateObject(newRowObject, validationContext, validationResults, true);
这个应该实现你所追求的目标(我强调应该,因为我在写这个之前没有在一个例子中自己检查过它。)
希望这会有所帮助......
克里斯