我正在尝试通过 DataAnnotations 验证 Silverlight 5 应用程序中的数据。我编写了几个自定义 ValidationAttributes,只要我在属性的 Setter 中进行验证,它们就可以正常工作。如果用户打开我正在执行此验证的数据表单并仅按下“保存”按钮,而不对属性进行任何更改,我想验证整个对象。在这部分,我的实现没有按预期工作。我编写了一个使用 Validator.TryValidateObject() 的方法。在结果中,我看到 ValidationExceptions 被抛出,但它们没有显示在 UI 上。有谁知道我做错了什么?我猜系统不知道抛出异常的属性是什么?
public bool ValidateObject()
{
var validationItems = new List<ValidationResult>();
var result = new List<ValidationResult>();
Validator.TryValidateObject(this, new ValidationContext(this), result, true);
if (result.Count > 0)
{
foreach (var error in result)
{
throw new ValidationException(error.ErrorMessage = LanguageManager.Instance.GetLanguageString(error.ErrorMessage));
}
}
return result.Count != 0;
}
LanguageManager 是一个以当前选择的语言返回错误消息的对象。
非常感谢您的帮助。