Формат строки по умолчанию в Silverlight - PullRequest
2 голосов
/ 07 декабря 2010

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

double d = 4.323d;

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

4.32

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

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

double d2 = 4d;

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

4, а не 4.00.

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

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

1 Ответ

5 голосов
/ 07 декабря 2010

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

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

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

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

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

...