This documentation is archived and is not being maintained.

ValidationRule.Validate Method

When overridden in a derived class, performs validation checks on a value.

Namespace: System.Windows.Controls
Assembly: PresentationFramework (in presentationframework.dll)

virtual ValidationResult^ Validate (
	Object^ value, 
	CultureInfo^ cultureInfo
) abstract
public abstract ValidationResult Validate (
	Object value, 
	CultureInfo cultureInfo
public abstract function Validate (
	value : Object, 
	cultureInfo : CultureInfo
) : ValidationResult
You cannot use methods in XAML.



The value from the binding target to check.


The culture to use in this rule.

Return Value

Returns a ValidationResult object.

You must implement this method when you create a subclass of the ValidationRule class in order to create a custom validation rule.

Each time the data binding engine transfers a value from the binding target property (from user input) to the binding source property (the underlying data), it checks whether any ValidationRules are defined for that binding. If ValidationRules are defined for the binding, the engine calls the Validate method on each ValidationRule until one of them finds an error or until all of them pass.

For detailed information about data validation, see Data Binding Overview.

The following example shows how to implement a validation rule. In the following example, the input value is invalid if it contains non-numeric characters or if it is outside the lower and upper bounds. If the input value is invalid, the ErrorContent property is set to the appropriate error message and the IsValid property is set to false.

For the complete example, see Implement Binding Validation.

public class AgeRangeRule : ValidationRule
    private int _min;
    private int _max;

    public AgeRangeRule()

    public int Min
        get { return _min; }
        set { _min = value; }

    public int Max
        get { return _max; }
        set { _max = value; }

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

            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 new ValidationResult(true, null);

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0