0

275983.35 など、数百万の範囲の通貨番号を使用する文字列形式を作成し、これを 2.7 として表示しようとしています。これは、凡例のスケーリング数として使用するためのものです。

私が使用しているコントロールには、このような文字列形式が必要です{}{0:my string format}

を使用してディスプレイに 2.7 を表示することができましたが{}{0:0,,.0}、通貨記号が表示されません。次のように、単一の通貨記号をハードコーディングせずに通貨記号を表示するにはどうすればよいですか{}{0;$0,,.0}?

4

1 に答える 1

0

最も簡単な解決策は、数値を 1,000,000 で割り、標準の通貨書式を使用して表示することです。これにより、通貨のローカリゼーションが得られますが、これが数百万ドル/ポンド/ユーロであることを示すものではありません。

より良い解決策は、100 万で割るカスタム コンバーターを作成し、正しい通貨記号を選択してから、これが 100 万であることを示すために "m" (または任意の記号) を追加することです。

public class MillionsConverter : IValueConverter
{
    #region IValueConverter Members

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return (value / 1000000M).ToString("C2") + " m";
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }

    #endregion
}

次に、XAML で:

<ResourceDictionary>
    <Converters:MillionsConverter  x:Key="MillionsConverter " />
</ResourceDictionary>

<TextBlock Text="{Binding Value, Converter={StaticResource MillionsConverter}" />

これは出力されます:

270万ドル

明らかに、必要な正確な形式を取得するには、コンバーターを微調整する必要があります。

于 2012-04-25T10:34:48.330 に答える