다음을 통해 공유


Validation.Error 연결된 이벤트

정의

NotifyOnValidationError 값이 true로 설정된 바인딩에 대해서만 바인딩된 요소가 유효성 검사 오류를 만나는 경우에 발생합니다.

see AddErrorHandler, and RemoveErrorHandler
see AddErrorHandler, and RemoveErrorHandler
see AddErrorHandler, and RemoveErrorHandler

설명

WPF 데이터 바인딩 모델을 사용하면 개체와 연결할 ValidationRules 수 있습니다 Binding . 유효성 검사는 변환기가 호출되기 전에 대상-바인딩 원본 값 전송을 바인딩하는 동안 발생합니다. 다음은 유효성 검사 프로세스에 대해 설명합니다.

  1. 값이 대상 속성에서 원본 속성으로 전송되는 경우 데이터 바인딩 엔진은 먼저 바인딩된 요소의 연결된 속성에 Validation.Errors 추가되었을 수 있는 모든 값을 제거합니다ValidationError. 그런 다음, 해당 Binding에 대해 정의된 사용자 지정 ValidationRule가 있는지 확인합니다. 이 경우 둘 중 하나가 오류로 실행되거나 모두 통과될 때까지 각 ValidationRule의 메서드를 호출 Validate 합니다.

  2. 통과 하지 않는 사용자 지정 규칙을 되 면 바인딩 엔진 만듭니다는 ValidationError 개체에 추가 합니다는 Validation.Errors 바인딩된 요소의 컬렉션입니다. Validation.Errors가 비어 있지 않으면 요소의 Validation.HasError 연결된 속성은 true로 설정됩니다. 또한 BindingNotifyOnValidationError 속성이 true로 설정된 경우 바인딩 엔진은 요소에서 Validation.Error 연결된 이벤트를 발생시킵니다.

  3. 모든 규칙이 통과하면 바인딩 엔진은 변환기를 호출합니다(있는 경우).

  4. 변환기가 통과 하는 경우 바인딩 엔진이 소스 속성의 setter를 호출 합니다.

  5. 바인딩에 연결된 이 ExceptionValidationRule 있고 4단계 중에 예외가 throw되면 바인딩 엔진은 UpdateSourceExceptionFilter가 있는지 확인합니다. UpdateSourceExceptionFilter 콜백을 사용하여 예외를 처리하기 위한 사용자 지정 처리기를 제공하는 옵션이 있습니다. UpdateSourceExceptionFilterBinding에 지정되지 않은 경우 바인딩 엔진은 예외가 있는 ValidationError를 만들고 바인딩된 요소의 Validation.Errors 컬렉션에 추가합니다.

또한 어느 방향으로든 유효한 값 전송(대상-원본 또는 원본-대상)은 을 Validation지웁니다.Errors연결된 속성입니다.

자세한 내용은 데이터 바인딩 개요의 "데이터 유효성 검사"를 참조하세요.

라우팅 이벤트 정보

식별자 필드 ErrorEvent
라우팅 전략 버블링
대리자 EventHandler<TEventArgs>, 에 의해 제한됨 ValidationErrorEventArgs

적용 대상