我正在尝试编写一个字符串格式,其中包含数百万的货币数字,例如275983.35,然后将其显示为2.7。这用作图例上的缩放数字。
我使用的控件需要像{}{0:my string format}
我已设法通过使用{}{0:0,,.0}
让显示器显示2.7,但这不会显示货币符号。如何在不对单一货币符号进行硬编码的情况下显示货币符号,如下所示:{}{0;$0,,.0}
。
答案 0 :(得分: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}" />
这将输出:
$2.7米
显然,您需要调整转换器以获得所需的确切格式。