2010-03-11 3 views
0

Я только что зарегистрировал это с помощью Microsoft Connect, но мне интересно, нашел ли кто-нибудь еще его и нашел исправление. Google не показывает много ...Ошибка в текстовом поле Tablet PC/WPF - любые обходные пути?

Простой репродукция:

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

Не изменяйте поведение моего приложения, чтобы не использовать MaxLength, знает ли кто-нибудь о решении?

(я выложу здесь, если Microsoft вернулся с каким-либо советом.)

EDIT: Если уточнил я бегаю .NET 3.5 и Windows 7

+0

Предполагая, что .NET 3.5 SP1, это правильно? –

+0

Да, это так. Планирование тестирования с .NET 4 RC, когда я могу добраться до подходящей машины! –

ответ

0

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

0

Я буду честен , У меня нет опыта работы с WPF или Tablet PC, поэтому я снимаю слепые здесь, но я либо попаду в цель, либо узнаю что-то :)

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

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

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

+0

Да, мы уже сомневались в этих идеях, но поскольку у нас есть производственное приложение с тонкостью ввода данных, это приводит к накладным расходам (особенно для тестирования), которые я бы предпочел избежать! Я подозреваю, что это просто настоящая ошибка MS, но я надеялся, что я ошибаюсь. –

1

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

В противном случае я могу использовать проверку привязки как то, что есть described in this article.

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

Смежные вопросы