Выберите DataGridViewColumn по DataPropertyName

#c# #.net #datagridview

#c# #.net #datagridview

Вопрос:

У меня есть DataGridView, в котором мне нужно программно выбрать ячейку определенного столбца. Но дизайнер автоматически генерирует это:

 this.dataGridViewTextBoxColumn1.DataPropertyName = "NameIWant";
this.dataGridViewTextBoxColumn1.HeaderText = "NameIWant";
this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1";
  

И это ничего не делает.

 DataGridViewColumn column = DataGridView.Columns["NameIWant"];
  

Есть ли способ получить столбец по его DataPropertyName или автоматически задать имя столбца?
DataGridView привязан к DataSet, который считывается с SQL Server.

Комментарии:

1. Ваш SQL-запрос может иметь в строке Name в качестве NameIWant. Затем, когда вы используете datagridview1.DataSource = ds, вы получаете нужное имя.

Ответ №1:

Добавить поле формы:

 Dictionary<string, DataGridViewColumn> columnDictionary;
  

заполните его данными:

 columnDictionary = dataGridView.Columns
    .OfType<DataGridViewColumn>()
    .ToDictionary(c => c.DataPropertyName, c => c);
  

Используйте его:

 DataGridViewColumn column = columnDictionary["NameIWant"];