Silverlight可选字段验证

时间:2011-07-26 12:08:59

标签: c# .net silverlight

我有一个INotifyDataErrorInfo的实现,它可以像我期望的那样使用Data Annotations,但我真正想知道的是我如何进行条件验证。

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

希望这是有道理的,有人能够引导我朝着正确的方向前进。

1 个答案:

答案 0 :(得分: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;
}