2011-07-26 85 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