、私は、実行時に言語を切り替えることができます。シルバーValidatesOnExceptionデフォルトのメッセージのローカライズ
public void SetLanguage(string language)
{
var culture = new CultureInfo(language);
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
// ...
}
を入力するために、私はちょうど変換の問題の場合には「ValidatesOnException = true」を追加し、それはありませんジョブ。しかし、デフォルトの例外メッセージは私のOSの文化にあり、手動で選択されたものではありません。
このスレッドでは、exception message localizationのアイデアは、私がしたCurrentCultureとCurrentUICultureを変更することです。だから私はこだわっている。
私は何ができますか?
感謝:)
編集:私は、ユーザーの入力を検証するために、convertback方法でカスタム例外でカスタムコンバータを使用しようとしました。問題は、コンバートバックメソッド内の例外がvalidatesOnExceptionによってキャッチされず、アプリケーションが壊れてしまうことです。
編集2:明確にする - >小数点のプロパティがテキストボックスにバインドされていて、このテキストボックスに "blabla"と入力すると、問題があることがわかります。実行時ロケールであり、OSロケールではありません。 プロパティーセッターで例外が発生することはありません。なぜなら、そこには決して行きません。デフォルトのコンバーターはそれ以前に例外を発生させます。
私はそれがはっきりしていることを望みます。私があなたを助けてくれるならば、躊躇しないでください:)
コンストラクタで言語を設定したくないので、実行時に変更することができます。これは当てはまりません。この言語はプライベートセットです。 –
コンストラクタ内にあるからといって、それが実行時にできないわけではありません。パラメーター化されたコンストラクターを使用し、使用したSetLanguageメソッドに似たロジックを含める –