Pregunta

acabo registró este con Microsoft Connect, pero me pregunto si alguien más ha llegado a través de ella y se encontró una solución. Google no está mostrando mucho ...

repro simple:

  • Aplicación tiene un cuadro de texto WPF con el conjunto MaxLength
  • Utilice el panel de entrada de Tablet PC para escribir más texto que se permite
  • Presione "inserción" en el panel de Tablet PC y la aplicación se bloquea

Más allá de cambiar el comportamiento de mi solicitud de no utilizar MaxLength, ¿alguien sabe de una solución?

(Voy a publicar aquí si Microsoft vuelve con algún consejo.)

EDIT:. Debería haber especificado estoy ejecutando .NET 3.5 y Windows 7

¿Fue útil?

Solución 3

Al parecer, este se fija en .NET 4.0, pero no hay planes para una solución 3.5. La sugerencia de SM fue para controlar el evento TextChanged para proporcionar MaxLength automáticamente (ew!).

Otros consejos

En función de la arquitectura de la aplicación, si está usando MVVM, podría quitar el MaxLength y luego hacer la validación en el objeto ViewModel para asegurar el valor coincide con la longitud esperada.

De lo contrario, podría utilizar la validación de enlace, como lo es se describe en este .

No es lo que yo llamaría óptima en el caso de algo que es verdaderamente longitud limitada como un código postal o un número de teléfono, sino que le permite interiorizar toda la validación en un solo lugar.

Voy a ser honesto, no tengo experiencia con cualquiera de WPF o interacciones de Tablet PC, así que estoy disparando a ciegas aquí, pero voy a dar en el blanco, ya sea o aprender algo:)

Desde mi punto de vista simplista que ver una serie de arounds de trabajo, todos implican la eliminación de la longitud máxima:

  1. En la presentación, truncar la cadena en la máquina virtual si son demasiado largos
  2. En la presentación, que alertan al usuario de truncamiento y el presente serie truncada de nuevo a ellos en el cuadro de texto para su edición
  3. Cuelgue un evento fuera del cuadro de texto y truncar la cadena "OnChange" con una etiqueta de alerta adyacente al campo, como un error formulario web.

De todos modos, espero que usted consigue algunas respuestas de algunas personas que saben lo que están hablando;)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top