문제

방금 이것을 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 상호 작용에 대한 경험이 없어서 여기서 블라인드를 촬영했지만 목표물을 치거나 무언가를 배울 것입니다. :)

내 단순한 관점에서 나는 여러 가지 작업을 볼 수 있으며 모두 최대 길이를 제거하는 것과 관련이 있습니다.

  1. 제출시 너무 길면 VM에서 문자열을 자릅니다.
  2. 제출시, 사용자에게 잘라 내고 텍스트 상자에 편집을 위해 잘린 문자열을 나타냅니다.
  3. 텍스트 상자에서 이벤트를 걸고 웹 양식 오류와 같이 필드에 인접한 레이블 알림으로 문자열 "Onchange"을 자릅니다.

어쨌든, 나는 당신이 자신이 무슨 말을하는지 아는 일부 사람들로부터 약간의 응답을 받기를 바랍니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top