0

我正在尝试编写一个字符串格式,它采用数百万范围内的货币数字,例如 275983.35,然后将其显示为 2.7。这是用作图例上的缩放数字。

我使用的控件需要这样的字符串格式{}{0:my string format}

我已经设法通过使用使显示器显示 2.7,{}{0:0,,.0}但这不显示货币符号。如何在不硬编码单个货币符号的情况下显示货币符号,如下所示:{}{0;$0,,.0}.

4

1 回答 1

0

最简单的解决方案是将数字除以 1,000,000,然后使用标准货币格式显示该数字。这将为您提供货币的本地化 - 但不是并表明这是数百万美元/英镑/欧元。

更好的解决方案是编写一个自定义转换器,该转换器将除以一百万选择正确的货币符号,然后附加一个“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 回答