ValidationRule.Validate 方法

定義

在值上執行驗證檢查。

多載

Validate(Object, CultureInfo)

在衍生類別中覆寫時,會在值上執行驗證檢查。

Validate(Object, CultureInfo, BindingExpressionBase)

在值上執行驗證檢查。

Validate(Object, CultureInfo, BindingGroup)

在值上執行驗證檢查。

Validate(Object, CultureInfo)

在衍生類別中覆寫時,會在值上執行驗證檢查。

public:
 abstract System::Windows::Controls::ValidationResult ^ Validate(System::Object ^ value, System::Globalization::CultureInfo ^ cultureInfo);
public abstract System.Windows.Controls.ValidationResult Validate (object value, System.Globalization.CultureInfo cultureInfo);
abstract member Validate : obj * System.Globalization.CultureInfo -> System.Windows.Controls.ValidationResult
Public MustOverride Function Validate (value As Object, cultureInfo As CultureInfo) As ValidationResult

參數

value
Object

要檢查之繫結目標的值。

cultureInfo
CultureInfo

要在這個規則中使用的文化特性。

傳回

ValidationResult

ValidationResult 物件。

範例

下列範例示範如何實作驗證規則。 在下列範例中,如果輸入值包含非數值字元,或超出下限和上限,則輸入值無效。 如果輸入值無效,屬性 ErrorContent 會設定為適當的錯誤訊息,並將 IsValid 屬性設定為 false

如需完整範例,請參閱 如何:實作系結驗證

public class AgeRangeRule : ValidationRule
{
    public int Min { get; set; }
    public int Max { get; set; }
    
    public AgeRangeRule()
    {
    }

    public override ValidationResult Validate(object value, CultureInfo cultureInfo)
    {
        int age = 0;

        try
        {
            if (((string)value).Length > 0)
                age = Int32.Parse((String)value);
        }
        catch (Exception e)
        {
            return new ValidationResult(false, $"Illegal characters or {e.Message}");
        }

        if ((age < Min) || (age > Max))
        {
            return new ValidationResult(false,
              $"Please enter an age in the range: {Min}-{Max}.");
        }
        return ValidationResult.ValidResult;
    }
}

備註

當您建立 類別的 ValidationRule 子類別以建立自訂驗證規則時,必須實作這個方法。

每當資料系結引擎將值從系結目標屬性 (從使用者輸入) 傳送至系結來源屬性, (基礎資料) ,它會檢查是否已針對該系結定義任何 ValidationRules 值。 如果 ValidationRules 已針對系結定義,引擎會在每個 ValidationRule 上呼叫 Validate 方法,直到其中一個找到錯誤,或直到所有方法通過為止。

如需資料驗證的詳細資訊,請參閱 資料系結概觀

另請參閱

適用於

Validate(Object, CultureInfo, BindingExpressionBase)

在值上執行驗證檢查。

public:
 virtual System::Windows::Controls::ValidationResult ^ Validate(System::Object ^ value, System::Globalization::CultureInfo ^ cultureInfo, System::Windows::Data::BindingExpressionBase ^ owner);
public virtual System.Windows.Controls.ValidationResult Validate (object value, System.Globalization.CultureInfo cultureInfo, System.Windows.Data.BindingExpressionBase owner);
abstract member Validate : obj * System.Globalization.CultureInfo * System.Windows.Data.BindingExpressionBase -> System.Windows.Controls.ValidationResult
override this.Validate : obj * System.Globalization.CultureInfo * System.Windows.Data.BindingExpressionBase -> System.Windows.Controls.ValidationResult
Public Overridable Function Validate (value As Object, cultureInfo As CultureInfo, owner As BindingExpressionBase) As ValidationResult

參數

value
Object

要檢查之繫結目標的值。

cultureInfo
CultureInfo

要在這個規則中使用的文化特性。

owner
BindingExpressionBase

使用驗證規則的繫結運算式。

傳回

ValidationResult

ValidationResult 物件。

適用於

Validate(Object, CultureInfo, BindingGroup)

在值上執行驗證檢查。

public:
 virtual System::Windows::Controls::ValidationResult ^ Validate(System::Object ^ value, System::Globalization::CultureInfo ^ cultureInfo, System::Windows::Data::BindingGroup ^ owner);
public virtual System.Windows.Controls.ValidationResult Validate (object value, System.Globalization.CultureInfo cultureInfo, System.Windows.Data.BindingGroup owner);
abstract member Validate : obj * System.Globalization.CultureInfo * System.Windows.Data.BindingGroup -> System.Windows.Controls.ValidationResult
override this.Validate : obj * System.Globalization.CultureInfo * System.Windows.Data.BindingGroup -> System.Windows.Controls.ValidationResult
Public Overridable Function Validate (value As Object, cultureInfo As CultureInfo, owner As BindingGroup) As ValidationResult

參數

value
Object

要檢查之繫結目標的值。

cultureInfo
CultureInfo

要在這個規則中使用的文化特性。

owner
BindingGroup

使用驗證規則的繫結群組。

傳回

ValidationResult

ValidationResult 物件。

適用於