0

int로 구문 분석 된 후 값이 개체의 int 속성에 전달되는 TextBox가 있습니다..NET WinForms 및 엔터프라이즈 라이브러리 유효성 검사 응용 프로그램 블록

ValidationProvider를 사용할 때 유효성을 검사 할 때이 변환 단계가 무시되고 문자열을 int32에 저장할 수 없다는 오류가 표시됩니다.

양식의 텍스트 상자 값과 비즈니스 개체의 int 값 사이에 다리 역할을하는 문자열 속성을 내 개체에 만들어서이 문제를 해결할 수 있지만 도메인 개체를 다음과 같이 변경해야하므로이 방법이 싫습니다. 확인 레이어를 확인하십시오.

도메인 개체에 브리지 속성을 만들지 않고 변환 후 해당 값을 int에 저장하는 입력란의 유효성을 검사하려면 어떻게해야합니까?

답변

1

해결책을 찾았습니다.

문자열을 int로 변환하는 것은 자동으로 이루어 지지만 텍스트 상자를 비워두면 실패합니다.

이 문제를 해결하기 위해 ValidationProvider의 ValueConvert 핸들러를 사용했지만이 버그는 일종의 버그라고 확신합니다.

편집 : 속성에 유효성 검사기가 없으면 ValueConvert 이벤트가 실행되지 않습니다. [ObjectValidator]를 더미로 사용하여 입력 변환이 필요할 때 ValueConvert 이벤트를 발생시킵니다.

0

또 다른 "더 나은"해결책은 내 속성에 TypeConversionValidator를 추가하는 것입니다.

예 속성 : TypeConversionValidator (대해서 typeof (INT))]

편집이 무시. 그것은 내가 예상했던대로 작동하지 않습니다.

관련 문제