Роб отвечает за 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;
На что обратить внимание:
- Источник данных устанавливается в конце определения столбца - это
потому что DataGridView будет автоматически связывать данные, когда его данные установлены.
- Для столбцов установлено значение DataGridViewTextBoxColumns. Это
стандартный способ отображения текстовой информации в DataGridView. Если вы используете
DataGridViewColumn, тогда он не будет знать, как отобразить данные.