Pergunta

Eu apenas registrado isso com o Microsoft Connect, mas eu estou querendo saber se alguém tem se deparar com ela e encontrou uma correção. Google não está mostrando muito mais ...

repro simples:

  • Aplicação tem uma caixa de texto WPF com MaxLength set
  • Use o painel de entrada do TabletPC para escrever mais texto do que é permitido
  • Pressione o botão "insert" no painel de TabletPC ea aplicação acidentes

Além de mudar o comportamento da minha candidatura para não usar MaxLength, alguém sabe de uma solução?

(Vou postar aqui se Microsoft voltar com algum conselho.)

EDIT:. deve ter especificado que eu estou correndo .NET 3.5 e Windows 7

Foi útil?

Solução 3

Aparentemente, isso foi corrigido no .NET 4.0, mas há planos para uma correção de 3,5. A sugestão de MS foi para manipular o evento TextChanged para fornecer MaxLength automaticamente (ew!).

Outras dicas

Dependendo da arquitetura do aplicativo, se você estiver usando MVVM, eu poderia remover o MaxLength e, em seguida, fazer a validação em seu objeto ViewModel para garantir o valor corresponda ao comprimento esperado.

Caso contrário, eu poderia usar a validação de ligação como o que é descrito neste artigo .

Não é o que eu chamaria ideal no caso de algo que é realmente comprimento limitado como um código postal ou um número de telefone, mas ele permite que você internalizar toda a validação em um só lugar.

Eu vou ser honesto, eu não tenho nenhuma experiência com qualquer interações WPF ou Tablet PC, então eu estou disparando cega aqui, mas eu nem vou acertar o alvo ou aprender alguma coisa:)

Do meu ponto visão simplista eu vejo um número de arounds trabalho, todos envolvem removendo o comprimento máximo:

  1. Na submissão, truncar a cadeia no VM se demasiado longo
  2. No envio, o usuário alerta para truncagem e presente corda para trás truncada para eles na caixa de texto para editar
  3. Pendure um evento fora da caixa de texto e truncar a string "OnChange" com um alerta rótulo adjacente ao campo, como um erro de formulário web.

De qualquer forma, espero que você obter algumas respostas de algumas pessoas que sabem o que estão falando;)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top