2011-07-26 53 views
3

我有一个INotifyDataErrorInfo的实现,它的工作方式与我期望的一样,但我真正想知道的是如何执行条件验证。Silverlight可选字段验证

比方说,我有3个文本框,名称,电子邮件和地址。我将Name作为必填字段,但我只需要输入电子邮件地址地址,因此验证规则需要检查这两个属性中的一个是否具有值。

希望这是有道理的,有人将能够指引我在正确的方向。

回答

2

属性添加:

[Required(AllowEmptyStrings = true)] 

到财产申报的EmailAddress在类的元数据定义。这将允许字符串是空的,但是当它是不正常的验证规则会踢因此,如果你添加类验证:

[CustomValidation(typeof(MyValidator), "ValidationMethod")] 

这可以那么在这种方法检查这两个值中的一个已组。

public static ValidationResult ValidationMethod(MyClass person, ValidationContext context) 
{ 
    if (person!= null) 
    { 
     if (string.IsNullOrWhiteSpace(person.Email) && 
      string.IsNullOrWhiteSpace(person.Address) 
     { 
      return new ValidationResult(....); 
     } 
    } 
    return ValidationResult.Success; 
} 
+0

很好,谢谢@Chris – Joeb454