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
Проверяемое значение.
Возвращаемое значение
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) |
Возвращает объект, представляющий метод, представленный указанным делегатом. |