С#, установите формат столбца datagridview после установки источника данных

у меня есть datagridview, который я заполнил программно, и мне было интересно, как я могу заставить один из столбцов соответствовать указанному формату - «C2».

Можно ли это сделать после назначения источника данных?

Ваше здоровье.


person Grant    schedule 27.08.2009    source источник


Ответы (2)


Роб отвечает для GridView (веб-элемент управления), а не для DataGridView (элемент управления winforms).

Я адаптировал его ответ для winforms.

var persons = new[] {new {name = "aaa", salary = 40000}, 
                 new  {name = "aaa", salary = 40000}, 
                 new  {name = "aaa", salary = 40000}, 
                 new  {name = "aaa", salary = 40000}};

DataGridView1.AutoGenerateColumns = false;

var NameField = new DataGridTextBoxColumn();

NameField.HeaderText = "Name";
NameField.DataPropertyName = "name";
DataGridView1.Columns.Add(NameField);

var SalaryField = new DataGridViewTextBoxColumn();
SalaryField.HeaderText = "Salary";
SalaryField.DataPropertyName = "salary";
SalaryField.DefaultCellStyle.Format = "{0:c2}";
DataGridView1.Columns.Add(SalaryField);

DataGridView1.DataSource = persons;

Что следует отметить:

  1. DataSource устанавливается в конце определений столбца — это связано с тем, что DataGridView автоматически привязывает данные, когда его данные установлены.
  2. Для столбцов установлено значение DataGridViewTextBoxColumns. Это стандартный способ отображения текстовой информации в DataGridView. Если вы используете DataGridViewColumn, он не будет знать, как отображать данные.
person CCarter    schedule 22.05.2014
comment
Исправлено: DataGridTextBoxColumn -> DataGridViewTextBoxColumn - person NorSD NorSD; 18.12.2014

Вы также можете сделать это в обработчике событий grid_ColumnAdded.

  if (e.Column.HeaderText == "YourColumnHeaderText") 
    {
     e.Column.DefaultCellStyle.Format = "C2";
    }
person Zain Ali    schedule 19.12.2011