Silverlight 可选字段验证

3
我有一个实现了`INotifyDataErrorInfo`接口的应用程序,它可以使用数据注释正常工作。但是我真正想知道的是如何进行条件验证。
假设我有3个文本框:名称,电子邮件和地址。我将名称设置为必填字段,但我只要求输入电子邮件地址中的一个,因此验证规则需要检查这两个属性中是否有一个具有值。
希望这样讲得清楚,有人能指导我走向正确的方向。
1个回答

2

添加属性:

[Required(AllowEmptyStrings = true)]

在类的元数据定义中,为EmailAddress属性声明添加@AllowEmptyString。这将允许字符串为空,但当它不为空时,正常的验证规则将会生效。因此,如果您添加了类验证器:

[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;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接