私の現在の文化は ru-ru です。10 進数を通貨文字列にフォーマットするために必要です。
decimal n = 111.22M;
n.ToString("C") will return "111,22р."
しかし、バインディングの StringFormat フィールドを使用しようとすると、「$111.22」という結果が得られます
<TextBlock Text={Binding Number, StringFormat=C} />
私の現在の文化は ru-ru です。10 進数を通貨文字列にフォーマットするために必要です。
decimal n = 111.22M;
n.ToString("C") will return "111,22р."
しかし、バインディングの StringFormat フィールドを使用しようとすると、「$111.22」という結果が得られます
<TextBlock Text={Binding Number, StringFormat=C} />
既定では、WPF はStringFormat
スレッドの現在のカルチャではなく、バインド処理のカルチャとして英語を使用します。
これは、アプリケーションのスタートアップ コードに次を追加することでオーバーライドできます。
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
new FrameworkPropertyMetadata( XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
詳細については、国際化されたウィザードの作成に関する Josh Smith の記事を参照してください。