DataGrid (WPF) - столбцы Валюта и Процент - PullRequest
1 голос
/ 05 марта 2011

Начну с того, что я совершенно новичок в WPF.Я пытаюсь изучить и диагностировать существующее приложение, и у меня возник вопрос, на который, я надеюсь, кто-то может ответить.

Я заметил, что когда пользователь вводит процент, ему нужно ввести десятичное значение (что имеет смысл), но затем он отображает его в процентах, например, если пользователь вводит .50, он отображается в ячейке как «50%» (конечно, после выхода из ячейки).Причина, по которой он так себя ведет, для меня очевидна, потому что формат установлен на "{0: P}".

Я хотел позволить пользователям вводить "50%", поэтому я создал конвертер (которыйнапример, преобразует «50%» в .5, и это прекрасно работает).

Что меня удивляет, почему конвертер не требуется для полей валюты (Format = "{0: C}")?Я удивлен, что DataGrid позволяет пользователю вводить знаки доллара, запятые и т. Д., А затем переводить их в десятичное число (тип денег в SQL).какое-то другое свойство, которое я просто еще не нашел в коде) или где-то есть конвертер, который я не обнаружил?

Как это работает, и если это какой-то автоматик, почему нетпроценты обрабатываются автоматически аналогичным образом?

1 Ответ

0 голосов
/ 16 декабря 2011

Я только что столкнулся с этой проблемой.Поскольку никто не дал ответа в течение 9 месяцев, я собираюсь высказать предположение.Кажется, есть встроенный конвертер валют ( см. Этот ответ ), и я подозреваю, что FormatString для валюты использует этот встроенный конвертер за кулисами.Встроенный ZoomPercentageConverter, кажется, не делает то, что нужно, поэтому я предполагаю, что P StringFormat просто тупее, слишком плохо.

...