最も簡単な解決策は、数値を 1,000,000 で割り、標準の通貨書式を使用して表示することです。これにより、通貨のローカリゼーションが得られますが、これが数百万ドル/ポンド/ユーロであることを示すものではありません。
より良い解決策は、100 万で割るカスタム コンバーターを作成し、正しい通貨記号を選択してから、これが 100 万であることを示すために "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}" />
これは出力されます:
270万ドル
明らかに、必要な正確な形式を取得するには、コンバーターを微調整する必要があります。