Форматировать строковое значение datagridview С#

Я хочу отформатировать значение в datagridview. Эти значения представляют собой строку, содержащую десятичное число. (Например, «3000» я хочу отобразить с разделителем тысяч (пробелом), например: «3000».

Я знаю, что это можно сделать, назначив формат defaultcellstyle с использованием формата, такого как «N2», например, это работает с десятичным типом столбца, но я использую тип строкового столбца в моем представлении данных для обработки некоторых исключений (отображение «-» вместо « 0", чтобы упростить просмотр пользователями)

Я пробовал разные форматы стилей ячеек, и на дисплее ничего не изменилось.

мне нужно изменить тип столбца моего datagridview или это можно сделать без большого количества кода?

Спасибо за все ответы,

Тристан


person Tristan Sébillet    schedule 14.03.2017    source источник
comment
Попробуйте CellFormatting событие.   -  person LarsTech    schedule 14.03.2017
comment
я пробую это прямо сейчас, не могу заставить это работать, как я ожидаю на данный момент.   -  person Tristan Sébillet    schedule 14.03.2017
comment
Вы должны были опубликовать свой код. Нажмите на ссылку редактирования под своим сообщением.   -  person LarsTech    schedule 14.03.2017
comment
я только что заставил его работать, как я ожидал. я дополню свой вопрос ответом с правильным кодом.   -  person Tristan Sébillet    schedule 14.03.2017


Ответы (1)


я только что заставил его работать, как я ожидал. Сначала я сделал прокомментированные вещи, и он просто показал ошибки, поэтому я попробовал второй способ (самый простой), который не комментируется.

string value = cell.Value.ToString();
//NumberFormatInfo nfi =(NumberFormatInfo)CultureInfo.InvariantCulture.NumberFormat.Clone();
//nfi.NumberGroupSeparator = " ";
//string formatted = double.Parse(value).ToString("n", nfi);
//cell.Value = formatted.Replace(".00","");// 12 345.00
string formatted = double.Parse(value).ToString("# ### ###");
cell.Value = formatted;
person Tristan Sébillet    schedule 14.03.2017
comment
Хороший. Попробую это. - person Rana Waqar; 17.05.2017