5

私の現在の文化は ru-ru です。10 進数を通貨文字列にフォーマットするために必要です。

decimal n = 111.22M;

n.ToString("C") will return "111,22р."

しかし、バインディングの StringFormat フィールドを使用しようとすると、「$111.22」という結果が得られます

<TextBlock Text={Binding Number, StringFormat=C} />
4

1 に答える 1

5

既定では、WPF はStringFormatスレッドの現在のカルチャではなく、バインド処理のカルチャとして英語を使用します。

これは、アプリケーションのスタートアップ コードに次を追加することでオーバーライドできます。

FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
    new FrameworkPropertyMetadata(      XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));

詳細については、国際化されたウィザードの作成に関する Josh Smith の記事を参照してください。

于 2012-10-17T00:57:59.443 に答える