Формат строки по умолчанию в Silverlight
-
09-10-2019 - |
Вопрос
У меня есть двойной, например
double d = 4.323d;
И я хочу отобразить его в текстовом блоке на приложении Silverlight 4, но дисплей должен быть это:
4.32
И я не могу изменить StringFormat на привязку вообще.
Исключением является то, что если число это:
double d2 = 4d;
Тогда он должен отображаться
4
, нет 4.00
.
И худшее исключение состоит в том, что он должен учитывать текущую культуру UI, что подразумевает, что если приложение развернуто в США, он должен использовать .
как десятичный севертор, а в Европе он должен использовать ,
(Ну не в Великобритании, но вы получаете точку ...)
Я мог бы установить defaultformat #.##
Если бы я мог изменить StringFormat, но я хочу сделать это через CultureInfo
Решение
Я собираюсь предположить, что вы считаете, что вы не можете использовать StringFormat в привязке, потому что он не использует CultureInfo
. Отказ Что бы то ни было, добавьте эти два взаимодействия на ваш код управления пользователя позади: -
using System.Windows.Markup;
using System.Threading;
а затем добавьте это на его конструктор: -
Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
Теперь связывание с StringFormat=#.##
будет использовать соответствующий десятичный разделитель для текущей культуры.