Подпишись на наш Twitter

Быть в курсе появления новых статей!

Класс, который реализует зависимые свойства (dependency property), может также предоставлять обратные вызовы для валидации (validation callback), которые указываются при регистрации свойства. Обратные вызовы валидации вызываются, когда свойство устанавливается в новое значение и возвращает true или false, указывая валидно ли новое значение.

Вы указываете обратный вызов валидации при регистрации зависимого свойства.

AgeProperty =
    DependencyProperty.Register(
        "Age",                 // Property's name
        typeof(int),           // Property's type
        typeof(Person),        // Defining class' type
        ageMetadata,           // Defines default value & changed/coercion callbacks  (optional)
        new ValidateValueCallback(OnAgeValidateValue));   // *** validation (optional)

В метод обратного вызова валидации передается новое значение.

private static bool OnAgeValidateValue (object value)
{
    int age = (int) value;

    // Only allow reasonable ages
    return (age > 0) && (age < 120);
}

Если свойство имеет не валидное значение, то выбрасывается исключение.

Person p = new Person("Samuel", "Clemens");
p.Age = 40;     // ok
p.Age = 300;    // throws System.ArgumentException

Оригинал: #122 – Validating a Dependency Property




Дата публикации: 11.11.2010 20:56

Ярлыки: Dependency Property, Validation, WPF