Я вижу, что ваш код преобразует числовые значения валюты в строку, а затем отображает строку в DataGridView
- это ваша проблема: это означает, что DataGridView будет выполнять лексикографическое упорядочение строк вместо числового порядка (т.е. "21"
упорядочивается после "123"
, потому что '2' > '1'
.
Я не знаю, каково определение m_DataRow
, но похоже, что вы используете нетипизированные наборы данных или, возможно, грубо созданный типизированный набор данных, но без каких-либо значимых имен столбцов и типов.
К сожалению, поскольку ваш DataGridView выглядит привязанным к этому объекту m_dataRow
, вы застряли, если не можете правильно его воссоздать (например, с фактическими именами и типами столбцов). Однако, если вы используете нетипизированные наборы данных, просто измените свой код, чтобы прекратить форматирование значений валюты в строку, но вместо этого укажите необработанное значение Decimal
напрямую, а затем используйте собственное форматирование столбца DataGridView, чтобы указать строку формата "C" (для валюты).
person
Dai
schedule
09.10.2015