According your logic, you need something like that
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;
}
}
Of course, you can make it more generic and parse millions, etc and different value types. The important point here is to pass the fr-FR
culture into converter to get a correct currency symbol
Xaml declaration
<Window.Resources>
<yournamespace:CurrencyConverter x:Key="currencyConverter"/>
</Window.Resources>
Xaml usage
<TextBlock Text="{Binding ., Converter={StaticResource currencyConverter}, ConverterCulture=fr-FR}"/>