ValidateValueCallback Делегат

Определение

Представляет метод, используемый в качестве обратного вызова, который проверяет эффективное значение свойства зависимостей.

public delegate bool ValidateValueCallback(System::Object ^ value);
public delegate bool ValidateValueCallback(object value);
type ValidateValueCallback = delegate of obj -> bool
Public Delegate Function ValidateValueCallback(value As Object) As Boolean 

Параметры

value
Object

Значение, подлежащий проверке.

Возвращаемое значение

Boolean

Значение true, если значение проверено; значение false, если отправленное значение недопустимо.

Примеры

В следующем примере представлена реализация этого обратного вызова для проверки диапазона значений для настраиваемого свойства зависимостей. В этом случае значение свойства ожидает перечисления, а проверка гарантирует, что предоставленное значение вычисляется как элемент этого перечисления.

private static bool ShirtValidateCallback(object value)
{
    ShirtTypes sh = (ShirtTypes) value;
    return (sh==ShirtTypes.None || sh == ShirtTypes.Bowling || sh == ShirtTypes.Dress || sh == ShirtTypes.Rugby || sh == ShirtTypes.Tee);
}
Private Shared Function ShirtValidateCallback(ByVal value As Object) As Boolean
    Dim sh As ShirtTypes = CType(value, ShirtTypes)
    Return (sh=ShirtTypes.None OrElse sh = ShirtTypes.Bowling OrElse sh = ShirtTypes.Dress OrElse sh = ShirtTypes.Rugby OrElse sh = ShirtTypes.Tee)

End Function

Комментарии

Обратные вызовы на основе этого делегата используются определенными сигнатурами DependencyProperty.Register и связанными методами, такими как RegisterAttached и эквиваленты только для чтения. Следует использовать сигнатуры, которые принимают validateValueCallback параметр, если требуется определенная проверка значения свойства при каждом установке его действующего значения. Затем необходимо реализовать этот обратный вызов таким образом, чтобы он выполнял фактическую проверку предлагаемого значения. Обратный вызов должен возвращать true , если значение, отправленное обратному вызову, является допустимым и в false противном случае. Значение false создает исключение в определенной части системы свойств, в которой предпринята попытка создания недопустимого набора свойств, поэтому приложение должно быть готово к обработке этих исключений.

Обратные вызовы проверки хранятся в идентификаторах свойств зависимостей, а не в метаданных свойства зависимостей. Обратный вызов проверки не имеет доступа к определенному экземпляру DependencyObject , для которого задано свойство, и может влиять только на то, какие значения принимаются для свойства в целом. Если вам нужен обратный вызов, который может изменять значения свойств на основе определенного экземпляра, следует использовать сочетание обратных CoerceValueCallback вызовов и PropertyChangedCallback обратных вызовов, применяемых к метаданным свойства свойства. Вы также можете применить эти обратные вызовы к связанным свойствам, которые должны повлиять на значение свойства. Дополнительные сведения см. в разделе "Обратные вызовы свойств зависимостей" и "Проверка".

Методы расширения

GetMethodInfo(Delegate)

Получает объект, представляющий метод, представленный указанным делегатом.

Применяется к

См. также раздел