2014-01-24 1 views
0

WPF DataBinding에 대한 사용자 지정 ValidationRule을 구현하고 있습니다. 이렇게하려면 ValidationRule에서 상속 받고 몇 가지 추상 또는 가상 메서드 중 하나 이상을 구현합니다. 이것은 내가 구현하고있는 방법이다 :유효성 검사를 수행하지 않음을 나타 내기 위해 사용자 지정 ValidationRule에서 안전하게 null을 반환 할 수 있습니까?

public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo, System.Windows.Data.BindingExpressionBase owner) 

나는 IsValid 속성에 대한 true 또는 false이 있어야하거나 반환 오전 ValidationResult 객체입니다. 이것은 논리적으로 세 번째 옵션 인 Unknown 또는 Unndetermined가 누락 된 것 같습니다. 경우에 따라 유효성 검사기가 적용되지 않을 수도 있습니다.

그럼 이러한 경우 어떻게해야합니까? null을 안전하게 반환 할 수 있습니까?

답변

0

NO !! 유효성 검사기는 Validate 메서드의 오버로드에서 null을 반환하지 말고 요청하기 전에 예외를 throw해서는 안됩니다. 이러한 경우 응용 프로그램에서 프레임 워크 코드에서 처리되지 않은 예외가 발생하여 충돌이 발생할 수 있습니다.

따라서 완벽한 맞춤법을 사용하지 말고 ValidationResult.ValidResult을 반환하면 사용자 정의 유효성 검사기가 본질적으로 아무 작업도 수행하지 않게 할 수 있습니다.

출처 : .NET 4.5에서 테스트 완료

관련 문제