如何在xaml中显示特定有效小数位数的货币?

24 浏览
0 Comments

如何在xaml中显示特定有效小数位数的货币?

在WPF/xaml代码中,我可以使用以下代码显示一定金额的货币:


它会显示如下结果:

680 000,00 €

我想要在xaml代码中去掉不需要的小数位,例如:

680 000 €

或者

680 k€

我该如何做到这一点?

0
0 Comments

问题的出现原因:在XAML中显示特定有效小数位数的货币。

解决方法:根据逻辑,创建一个CurrencyConverter类来实现IValueConverter接口。在Convert方法中,根据传入的值判断其类型,如果是整数类型,则根据不同的值大小返回不同格式的货币字符串。最后,在XAML中声明并使用CurrencyConverter,并通过ConverterCulture属性将"fr-FR"传递给转换器以获取正确的货币符号。

具体代码如下:

public class CurrencyConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value is int intValue)
        {
            if (intValue < 1000)
            {
                return string.Format(culture, "{0:C0}", intValue);
            }
            return $"{intValue / 1000} k{culture.NumberFormat.CurrencySymbol}";
        }
        return value?.ToString();
    }
    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return Binding.DoNothing;
    }
}

在XAML中声明CurrencyConverter:


    

在XAML中使用CurrencyConverter:


0
0 Comments

问题的原因是用户想要在XAML中显示特定小数位数的货币。解决方法是使用StringFormat和转换器来实现。

如果想要显示680,000€,可以尝试使用StringFormat:StringFormat={}{0:C0}}

而对于680k€以及其他所有所需的格式,可以使用转换器来完成任务。

0