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



在WPF/xaml代码中,我可以使用以下方法显示一定数量的钱:

<TextBlock Text="{Binding ., StringFormat={}{0:C}}" xml:lang="fr-FR"/>

例如,它将显示:

680 000,00 €

我正在尝试从 xaml 代码中删除不需要的小数,例如,

680 000 €

680 千€

我该怎么做?

如果你想要680 000欧元,你可以试试:StringFormat={}{0:C0}}

对于680 k€,对于您想要的所有格式,转换器都可以完成这项工作。

根据你的逻辑,你需要这样的东西

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;
}
}

当然,您可以使其更通用并解析数百万等以及不同的值类型。这里重要的一点是将fr-FR文化传递到转换器中以获得正确的货币符号

Xaml 声明

<Window.Resources>
<yournamespace:CurrencyConverter x:Key="currencyConverter"/>
</Window.Resources>

Xaml 用法

<TextBlock Text="{Binding ., Converter={StaticResource currencyConverter}, ConverterCulture=fr-FR}"/>

相关内容

  • 没有找到相关文章

最新更新