2012-12-11 2 views
0

최근에 .NET 3.5 SP1 응용 프로그램을 .NET 4.0으로 업그레이드했으며 모든 컨트롤에서 유효성 검사 (예 :보고)가 활성화 된 것으로 나타났습니다. 모델의 int 속성에 바인딩 된 TextBox의 Text 속성은 문자를 입력 할 때 빨간색 테두리로 나타납니다.WPF 4.0 유효성 검사 오류

3.5에서는 글자를 쓰는 것이 빨간색 테두리가있는 텍스트 상자가 아니며 자동으로 무시됩니다.

4.0에서는 이전에 자동으로 값을 지울 때 사용자가 오류를 수정할 때까지 전체 눈금을 읽기 전용으로 변경하므로 DataGrid에 문제가 발생합니다. 그런 다음 해당 행이 프로그래밍 방식으로 삭제되면 전체 표가 읽기 전용으로 유지됩니다.

WPF 유효성 검사 프레임 워크를 사용하지 않으므로 3.5 동작을 복원 할 수있는 방법이 있습니까?

답변

0

바인딩에 ValidatesOnDataExceptions=True이 (가) 있기 때문에이 동작이 발생한다고 생각합니다. false로 설정하거나 공백으로 남겨두면 트릭을 수행해야합니다 (AFAIK, 기본값은 false 임).

+0

응답 해 주셔서 감사합니다. ValidatesOnDataExceptions = True 또는 WPF 유효성 검사와 관련된 코드는 아직 사용하지 않았으므로 어디에도 없습니다. 그것과 ValidateOnDataErrors를 False로 설정해도 아무 것도하지 않는 것 같습니다. 빨간색 경계가 유지됩니다. 이것은 새로운 프로젝트에서도 발생합니다. – sleepp

+0

네 말이 맞아. 방금 테스트했는데 똑같은 문제가 있습니다. UpdateSourceExceptionFilter를 설정하고 null을 반환 할 때 (이는 유효성 검사 오류를 추가해서는 안됨을 의미 함) TextBox는 유효성 검사 오류가 있다고 생각하기 때문에 이것이 버그라고 생각합니다. 대신 사용자 지정 변환기를 제공하는 것이 좋습니다. –