将全球文化信息设置为十进制值

时间:2018-12-06 14:24:32

标签: xamarin.forms decimal globalization cultureinfo culture

如何为所有十进制值全局设置CultureInfo。

采用一个十进制值,例如

  

15.00

我们可能会使用 DecimalValue.ToString("C", new CultureInfo("en-GB"))

以便将其转换为该区域性,并且输出为

  

€15.00

但是问题是我是否能够设置要在项目中显示的所有十进制值的区域性信息

1 个答案:

答案 0 :(得分:0)

您更好的方法是也为Decimal值声明一个转换器,并在需要显示值的任何地方使用它。

首先,您编写转换器:

public class DecimalConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value == null)
                return "0";
            decimal decimalValue = (decimal)value;
            return decimalValue.ToString("C", new CultureInfo("en-GB"))
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

然后,在您的App.xaml.cs中的ResourceDictionary内声明要在应用程序中使用它

        

现在,在页面中,无论绑定十进制值的位置如何,都可以像这样使用它:

   <Label Text="{Binding YourDecimalValue, Converter={StaticResource DecimalConverter}}"/>