Вопрос

У меня есть двойной, например

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=#.## будет использовать соответствующий десятичный разделитель для текущей культуры.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top