2

たとえば、ダブルがあります

double d = 4.323d;

そして、Silverlight 4アプリケーションのTextBlockに表示したいのですが、表示は次のようになります。

4.32

また、バインディングのStringFormatを変更することはできません。

例外は、番号が次の場合です。

double d2 = 4d;

次に、表示されます

4、ではありません4.00

また、最悪の例外は、現在のUIカルチャーを考慮に入れる必要があることです。つまり、アプリを米国でデプロイする場合は.、小数点以下の区切り記号としてを使用する必要があり、ヨーロッパでは、を使用する必要があります,(英国では、しかし、あなたはポイントを得る...)

StringFormatを変更できた場合は、defaultformatを設定できますが、#.##CultureInfoを使用して変更したいと思います。

4

1 に答える 1

5

とりあえず、StringFormatはを使用しないため、バインディングで使用できないと思われると思いますCultureInfo。その場合は、これら2つの使用法をユーザー制御コードの背後に追加してください:-

using System.Windows.Markup;
using System.Threading;

次に、これをコンストラクターに追加します。-

Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);

これで、とのバインディングStringFormat=#.##は現在のカルチャに適切な小数点を使用します。

于 2010-12-07T09:30:36.590 に答える