У меня есть немного проблемы при форматировании, дважды оценивает в моем коде XAML.
double price = 10300.455;
Это число должно быть отображено как 10 300,45 в американских системах и как 10.300,45 в немецких системах.
До сих пор мне удалось ограничить числа со следующим.
Binding="{Binding price, StringFormat=F2}"
Но результат 10300.45, и это не то, что я имел в виду. Я мог зафиксировать это легко использование преобразователя, но я не хочу делать это, если существует иначе вокруг. Просто правильное Средство форматирования было бы прекрасно.
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