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