Поделиться через


ValidationError Класс

Определение

Представляет ошибку проверки, создаваемую либо модулем привязки, если ValidationRule сообщает об ошибке проверки, либо явным образом с помощью метода MarkInvalid(BindingExpressionBase, ValidationError).

public ref class ValidationError
public class ValidationError
type ValidationError = class
Public Class ValidationError
Наследование
ValidationError

Примеры

В следующем примере показан триггер стиля, который создает ToolTip объект , который сообщает сообщение об ошибке проверки. Присоединенное Validation.Errors свойство возвращает коллекцию объектов привязанного ValidationError элемента.

<Style x:Key="textStyleTextBox" TargetType="TextBox">
  <Setter Property="Foreground" Value="#333333" />
  <Setter Property="MaxLength" Value="40" />
  <Setter Property="Width" Value="392" />
  <Style.Triggers>
    <Trigger Property="Validation.HasError" Value="true">
      <Setter Property="ToolTip"
        Value="{Binding RelativeSource={RelativeSource Self},
                        Path=(Validation.Errors)[0].ErrorContent}"/>
    </Trigger>
  </Style.Triggers>
</Style>

Комментарии

Модель привязки данных WPF позволяет связать правила проверки с Binding объектом . Проверка выполняется во время передачи целевого значения в источник перед вызовом преобразователя. Ниже описан процесс проверки.

  1. При передаче значения из целевого свойства в исходное свойство подсистема привязки данных сначала удаляет все ValidationError , что могло быть добавлено во Validation.Errors присоединенное свойство привязанного элемента. Затем он проверяет, определены ли какие-либо пользовательские правила проверки для этого Binding. В этом случае он вызывает Validate метод для каждого ValidationRule из них, пока не произойдет сбой одного из них или пока все они не будут пройдены.

  2. После того как пользовательское правило не передается, обработчик привязки создает ValidationError объект и добавляет его в коллекцию Validation.Errors привязанного элемента. Если значение Validation.Errors не пустое, то прикрепленное свойство Validation.HasError элемента имеет значение true. Также если свойство NotifyOnValidationErrorBinding имеет значение true, то обработчик привязки вызывает в элементе Validation.Error присоединенное событие.

  3. Если все правила пройдены, подсистема привязки вызывает преобразователь, если он существует.

  4. Если преобразователь проходит, подсистема привязки вызывает метод задания исходного свойства.

  5. Если привязка связана ExceptionValidationRule с и на шаге 3 или 4 возникает исключение, подсистема привязки проверяет UpdateSourceExceptionFilterналичие . Вы можете использовать обратный вызов UpdateSourceExceptionFilter, чтобы предоставить пользовательский обработчик для обработки исключений. Если для элемента Binding не указано UpdateSourceExceptionFilter, механизм привязки создает ValidationError с исключением и добавляет его в коллекцию Validation.Errors связанного элемента.

Допустимая передача значения в любом направлении (из целевого объекта в источник или из источника в целевой объект) очистит присоединенное Validation.Errors свойство.

Конструкторы

ValidationError(ValidationRule, Object, Object, Exception)

Инициализирует новый экземпляр класса ValidationError с заданными параметрами.

ValidationError(ValidationRule, Object)

Инициализирует новый экземпляр класса ValidationError с заданными параметрами.

Свойства

BindingInError

Получает объект BindingExpression или MultiBindingExpression этого ValidationError. Объект либо явно помечен как недопустимый или не прошел правило проверки.

ErrorContent

Возвращает или задает объект, который предоставляет дополнительный контекст для этой ошибки ValidationError, например строку с описанием ошибки.

Exception

Получает или задает объект Exception, ставший причиной ValidationError, если ошибка является результатом исключения.

RuleInError

Получает или задает объектValidationRule, ставший причиной ValidationError, если ошибка является результатом правила проверки.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

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

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