为十进制值设置全局 cultureinfo
Set global cultureinfo for decimal values
如何为所有十进制值全局设置 CultureInfo。
取一位小数如
15.00
我们可以用
DecimalValue.ToString("C", new CultureInfo("en-GB"))
这样它将转换为该文化,输出为
€15.00
但问题是我能否为将要显示在项目中的所有十进制值设置区域性信息?
更好的方法是为 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}}"/>
如何为所有十进制值全局设置 CultureInfo。
取一位小数如
15.00
我们可以用
DecimalValue.ToString("C", new CultureInfo("en-GB"))
这样它将转换为该文化,输出为
€15.00
但问题是我能否为将要显示在项目中的所有十进制值设置区域性信息?
更好的方法是为 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}}"/>