태블릿 PC/WPF 텍스트 상자 버그 - 해결 방법이 있습니까?
문제
방금 이것을 Microsoft Connect에 기록했지만 다른 사람이 그것을 발견하고 수정을 찾았는지 궁금합니다. Google은별로 표시되지 않습니다 ...
간단한 재현 :
- 응용 프로그램에는 MaxLength 세트가있는 WPF 텍스트 상자가 있습니다
- tabletpc 입력 패널을 사용하여 허용되는 것보다 더 많은 텍스트를 작성하십시오.
- tabletpc 패널에서 "삽입"을 누르면 응용 프로그램이 충돌합니다.
MaxLength를 사용하지 않도록 응용 프로그램의 동작을 변경하는 것 외에도 솔루션을 알고 있습니까?
(Microsoft가 조언을 받으면 여기에 게시하겠습니다.)
편집하다: .NET 3.5 및 Windows 7을 실행중인 것으로 지정해야합니다.
해결책 3
분명히 이것은 .NET 4.0에 고정되어 있지만 3.5 수정 계획은 없습니다. MS의 제안은 MaxLength를 자동으로 제공하기 위해 TextChanged 이벤트를 처리하는 것이 었습니다.
다른 팁
애플리케이션 아키텍처에 따라 MVVM을 사용하는 경우 MaxLength를 제거한 다음 ViewModel 객체에서 유효성 검사를 수행하여 값이 기대하는 길이와 일치 할 수 있습니다.
그렇지 않으면 나는 바인딩 검증을 사용할 수 있습니다. 이 기사에 설명되어 있습니다.
우편 번호 나 전화 번호와 같이 진정으로 길이가 제한되는 경우에 내가 최적이라고 부르는 것은 아니지만 한 곳에서 모든 검증을 내부화 할 수 있습니다.
솔직히 말해서, 나는 WPF 또는 태블릿 PC 상호 작용에 대한 경험이 없어서 여기서 블라인드를 촬영했지만 목표물을 치거나 무언가를 배울 것입니다. :)
내 단순한 관점에서 나는 여러 가지 작업을 볼 수 있으며 모두 최대 길이를 제거하는 것과 관련이 있습니다.
- 제출시 너무 길면 VM에서 문자열을 자릅니다.
- 제출시, 사용자에게 잘라 내고 텍스트 상자에 편집을 위해 잘린 문자열을 나타냅니다.
- 텍스트 상자에서 이벤트를 걸고 웹 양식 오류와 같이 필드에 인접한 레이블 알림으로 문자열 "Onchange"을 자릅니다.
어쨌든, 나는 당신이 자신이 무슨 말을하는지 아는 일부 사람들로부터 약간의 응답을 받기를 바랍니다.)