Tablet PC/WPF テキストボックスのバグ - 回避策はありますか?
質問
私は Microsoft Connect を使用してこれを記録したところですが、他に誰かがこの問題に遭遇し、修正を見つけたのかどうか疑問に思っています。Googleではあまり表示されません...
簡単な再現:
- アプリケーションには MaxLength が設定された WPF テキストボックスがあります
- TabletPC 入力パネルを使用して、許可されている以上のテキストを書き込む
- TabletPC パネルで「挿入」を押すとアプリケーションがクラッシュする
MaxLength を使用しないようにアプリケーションの動作を変更する以外に、解決策を知っている人はいますか?
(Microsoft からアドバイスがあれば、ここに投稿します。)
編集: .NET 3.5 と Windows 7 を実行していることを指定する必要がありました。
解決 3
どうやらこれは、.NET 4.0で固定していないが、3.5の修正のためには予定されています。 MSからの提案は、自動的にのMaxLengthを提供するために、TextChangedイベントを処理することでした(EW!)。
他のヒント
あなたはMVVMを使用している場合は、アプリケーションのアーキテクチャに応じて、私はのMaxLengthを削除可能性があり、その値は、あなたが期待する長さと一致することを確認するためにあなたのViewModelオブジェクトに検証を行います。
そうでなければ私は本で説明されているもののようなバインディングの検証を使用する場合があります記事でます。
どのような私は本当に長郵便番号や電話番号などの限定されたのですが、それはあなたが一箇所ですべての検証を内部化することができます何かの場合に最適な呼び出しますされていません。
正直に言うと、私は WPF や Tablet PC の操作の経験がないので、ここでは何も考えずに射撃していますが、目標を達成するか、何かを学ぶかのどちらかです :)
私の単純化した観点からは、最大長を削除することを含む多くの回避策が考えられます。
- 送信時に、VM 内の文字列が長すぎる場合は切り詰めます。
- 送信時に、切り詰められることをユーザーに警告し、編集のために切り詰められた文字列をテキストボックスに返します。
- イベントをテキストボックスから切り離し、Web フォームエラーのように、フィールドの隣にラベルアラートを付けて文字列「OnChange」を切り詰めます。
とにかく、彼らが何について話しているのかを知っている何人かの人々からの返答が得られることを願っています ;)