Значение формата в XAML с десятичным разделителем?

У меня есть немного проблемы при форматировании, дважды оценивает в моем коде XAML.

double price = 10300.455;

Это число должно быть отображено как 10 300,45 в американских системах и как 10.300,45 в немецких системах.

До сих пор мне удалось ограничить числа со следующим.

Binding="{Binding price, StringFormat=F2}"

Но результат 10300.45, и это не то, что я имел в виду. Я мог зафиксировать это легко использование преобразователя, но я не хочу делать это, если существует иначе вокруг. Просто правильное Средство форматирования было бы прекрасно.

8
задан Peter Mortensen 24 May 2012 в 11:59
поделиться

1 ответ

Binding="{Binding price, StringFormat=N2}" 

Попробуйте N вместо F. N - это формат чисел, который, основываясь на разных культурах, автоматически отображает форматирование чисел. Посмотрите на пример кода ниже, который является консольным приложением. Однако, если при привязке используется правильная культура, вы получите правильное значение. F2 - это нотация с фиксированной точкой.

    double price = 10300.455;

    Console.WriteLine(price.ToString("N2", 
        CultureInfo.CreateSpecificCulture("de-DE") ));
    // displays 10.300,46

    Console.WriteLine(price.ToString("N2",
        CultureInfo.CreateSpecificCulture("en-US") ));
    // displays 10,300.46
21
ответ дан 5 December 2019 в 05:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: