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