Silverlight 4中ria实体的强制验证

Silverlight 4中ria实体的强制验证,silverlight,validation,ria,Silverlight,Validation,Ria,在这种情况下,我将加载无效数据。我正在使用数据表单编辑数据,我需要强制验证。用户通常可能不会编辑无效的字段,但在我保存实体之前,我想通知用户需要编辑这些字段。但是,除非属性实际更改,否则验证似乎不会启动。是否有办法强制实体运行所有客户端验证规则 肖恩·霍尔德我不知道我是否正确理解了你想要实现的目标 如果在服务器上添加自定义验证器,并将类文件重命名为where.shared.cs,则shared会告诉编译器(?)添加要在客户端上运行的验证器 看看 希望这有帮助……我发现了这个问题。我最终在我的vi

在这种情况下,我将加载无效数据。我正在使用数据表单编辑数据,我需要强制验证。用户通常可能不会编辑无效的字段,但在我保存实体之前,我想通知用户需要编辑这些字段。但是,除非属性实际更改,否则验证似乎不会启动。是否有办法强制实体运行所有客户端验证规则


肖恩·霍尔德

我不知道我是否正确理解了你想要实现的目标

如果在服务器上添加自定义验证器,并将类文件重命名为
where.shared.cs
,则shared会告诉编译器(?)添加要在客户端上运行的验证器

看看


希望这有帮助……

我发现了这个问题。我最终在我的viewmodel上实现了INotifyDataErrorInfo(实际上是在基类中),并验证了验证上下文,如下所示

// Clear any validation errors already registered
CurrentUser.ValidationErrors.Clear();

var validationResults = new List<ValidationResult>();
ValidationContext vcontext = new ValidationContext(CurrentUser, null, null);

// Validate the User; the results are added to our list of validationResults
Validator.TryValidateObject(CurrentUser, vcontext, validationResults);

// Add the errors to the entities validation error list
foreach (var res in validationResults)
{
    CurrentUser.ValidationErrors.Add(res);
}
// Add the errors to the viewmodel's validation error list
foreach (var res in validationResults)
{
    CurrentUser.ValidationErrors.Add(res);
}