Простейшим решением было бы разделить число на 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.7m
Очевидно, что вам нужно настроить конвертер, чтобы получить точное формат, который вы хотите.
http://www.codeproject.com/Articles/11531/Money-DataType - на самом деле это отличный DataType, у меня был большой успех! –