Ошибка текстового поля планшетного ПК / WPF - какие обходные пути? - PullRequest
0 голосов
/ 11 марта 2010

Я только что зарегистрировал это с Microsoft Connect, но мне интересно, кто-нибудь еще сталкивался с этим и нашел исправление. Google не показывает много ...

Простое воспроизведение:

  • Приложение имеет текстовое поле WPF с установленным MaxLength
  • Используйте панель ввода TabletPC, чтобы написать больше текста, чем разрешено
  • Нажмите «Вставить» на панели TabletPC, и приложение вылетит

Помимо изменения поведения моего приложения, не использующего MaxLength, кто-нибудь знает решение?

(Я опубликую здесь, если Microsoft вернется с любым советом.)

РЕДАКТИРОВАТЬ: Должен был указать, что я использую .NET 3.5 и Windows 7.

Ответы [ 3 ]

1 голос
/ 11 марта 2010

В зависимости от архитектуры вашего приложения, если вы используете MVVM, я могу удалить MaxLength, а затем выполнить проверку в вашем объекте ViewModel, чтобы убедиться, что значение соответствует ожидаемой длине.

В противном случае я мог бы использовать проверку привязки, например, описанную в этой статье 1004 *.

Не то, что я бы назвал оптимальным в случае чего-то, что действительно ограничено по длине, как почтовый индекс или номер телефона, но это позволяет вам усвоить всю проверку в одном месте.

0 голосов
/ 16 марта 2010

Очевидно, это исправлено в .NET 4.0, но нет планов по исправлению 3.5. MS предложил обработать событие TextChanged, чтобы автоматически предоставлять MaxLength (ew!).

0 голосов
/ 11 марта 2010

Честно говоря, у меня нет опыта ни с WPF, ни с планшетными ПК, поэтому я стреляю вслепую, но либо попадаю в цель, либо изучаю что-то :)

С моей упрощенной точки зрения я вижу несколько обходных путей, все из которых включают удаление максимальной длины:

  1. При отправке обрезать строку в ВМ, если она слишком длинная
  2. При отправке предупредить пользователя об усечении и представить ему усеченную строку в текстовом поле для редактирования
  3. Повесьте событие из текстового поля и обрежьте строку «OnChange» с предупреждением метки рядом с полем, как ошибка веб-формы.

В любом случае, я надеюсь, что вы получите некоторые ответы от некоторых людей, которые знают, о чем они говорят;)

...