Формат строки по умолчанию в Silverlight

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

double d = 4.323d;

И я хочу отобразить его в TextBlock в приложении Silverlight 4, но отображение должно быть таким:

4.32

И я не могу изменить StringFormat для привязки вообще.

Исключением является то, что если число это:

double d2 = 4d;

Тогда должно отображаться

4не 4.00,

И худшим исключением является то, что он должен учитывать текущую культуру пользовательского интерфейса, что подразумевает, что если приложение развернуто в США, оно должно использовать . в качестве десятичного разделителя, а в Европе следует использовать , (ну не в Великобритании, но вы поняли...)

Я мог бы установить формат по умолчанию #.## ЕСЛИ мне удалось изменить StringFormat, но я хочу сделать это через CultureInfo

1 ответ

Решение

На данный момент я предполагаю, что вы считаете, что вы не можете использовать StringFormat в связывании, потому что он не использует CultureInfo, В таком случае добавьте эти два использования в ваш пользовательский управляющий код:

using System.Windows.Markup;
using System.Threading;

и затем добавьте это к его конструктору:

Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);

Теперь привязка с StringFormat=#.## будет использовать соответствующий десятичный разделитель для текущей культуры.

Другие вопросы по тегам