2015-01-11 4 views
0

현대적인 UI를 사용하고 있습니다. 내 뷰 모델베이스 또는 뷰 모델에서 IDataErrorInfo를 구현하지 않았지만 아직 유효성 검사 오류가 발생합니다. 즉, 텍스트 상자에 값을 입력 한 다음 제거하면 오류가 발생합니다. 값 ''을 (를 변환 할 수 없습니다. 또한 속성에 중단 점을 넣으면 이전 값을 유지하는 것으로 나타납니다. 감사합니다IDataErrorInfo를 구현하지 않고 아직 유효성 검사를 받고 있습니다.

답변

0

같음 : 해당 속성 유형이 int 또는 double 또는 Color이 아닌 ?/Nullable 수정 자와 같이 null이 허용되지 않는 것입니다. 컨트롤을 바인딩하는 데 사용되는 Binding 식은 데이터 구조에 직접 바인딩되고 스마트 변환기가없고 대체 값이 없기 때문에 빈 문자열을 완전히 변환하지 못합니다. UI 프레임 워크는 문제를 감지하고 오류를보고합니다.

더 복잡한 유효성 검사가 필요하면 IDataErrorInfo를 구현해야하지만 구현하지 않으면 유효성 검사 및 변환이 발생하지 않는다는 의미는 아닙니다. 일부 변환기는 잘못된 유형의 값을 던지거나 반환 할 수 있기 때문에 바인딩이 여전히 실패 할 수 있습니다. 디버그 모드와 옵저버 출력 패널에서 앱을 실행합니다. 바인딩 작업 실패에 대한 몇 가지 보고서가 표시됩니다.

+0

아니요, 내 속성은 null입니다. deciaml? –

+0

나는했으나 바인딩 오류가 없습니다! –

+0

흠 .. 그래, 그게 완전히 이상해. 지금은 추측이 아닙니다. 아마도 바인딩과 기본 데이터 구조 (UI와 관련이있는 구조)를 사용하여 XAML을 묘사하는 코드를 삭제해야 할 것입니다. 바인딩에 – quetzalcoatl