Привязка данных к типу double - десятичный знак потерян - PullRequest
1 голос
/ 02 апреля 2012

У меня есть проект, в котором я привязываю данные сетки к списку, где один столбец привязан к таблице сетки. У меня проблема в том, что при двойном значении 5,5 на одном компьютере он выглядит как 5,5 в виде сетки. Но по другому это похоже на 55, десятичный знак исчезает. Таким образом, 3.14 будет выглядеть как 314 и т. Д.

Ошибка возникает со следующим кодом:

myDatagrid.ItemsSource = someList;
Binding binding = new Binding("DoubleValue");
myColumnInDatagrid.Binding = binding;

Я также попытался использовать очень простой преобразователь значений, который просто возвращает double и проанализировал его в ConvertBack. Я довольно новичок в WPF, поэтому извините, если я допустил некоторые очевидные ошибки, я просто не понимаю, почему он работает на одном компьютере, а не на другом. Возможно, следует отметить, что оба компьютера используют одну и ту же операционную систему с одинаковыми языковыми настройками (по крайней мере, afaik).

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

Вы можете заставить объект Binding использовать определенный объект CultureInfo для обработки преобразования, независимо от текущей культуры, явно установив его свойство ConverterCulture следующим образом:

  binding.ConverterCulture=Globalization.CultureInfo.NeutralCulture

(ссылка: http://msdn.microsoft.com/en-us/library/system.windows.data.binding.converterculture.aspx)

0 голосов
/ 03 апреля 2012

FKE прав: Скорее всего, культура отличается на обоих компьютерах, следовательно, на разных экранах.

Вы можете установить Культуру через привязку или через FrameworkElement.Language, и вот хороший способ установить это глобально для всего приложения:

Как установить текущий CultureUI через привязку XAML

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...