Установить глобальную информацию о культуре для десятичных значений - PullRequest
0 голосов
/ 06 декабря 2018

Как установить CultureInfo глобально для всех десятичных значений.

Взять одно десятичное значение, например

15.00

мы можем использовать DecimalValue.ToString("C", new CultureInfo("en-GB"))

, так что он будет преобразован для этой культуры, и результат будет

€ 15,00

Но вопрос в том, могу ли я Установить культуруинформация для всех десятичных значений , которые будут отображаться в проекте?

1 Ответ

0 голосов
/ 06 декабря 2018

Ваш лучший подход - слишком объявить конвертер для десятичных значений и использовать его везде, где вам нужно отобразить значения.

Сначала вы пишете свой конвертер:

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}}"/>
...