Имя столбца DataGridView не найдено
Почему я получаю исключение, что Имя столбца не найдено для MyEntity, а также для столбцов FullName? Хотя я вижу, что имена столбцов отображаются в пользовательском интерфейсе.
InitializeComponent();
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
int rowIndex = dataGridView1.Rows.IndexOf(row);
myObject = dataGridView1.Rows[rowIndex].Cells["MyEntity"].Value as IEntityObject;
fileName = dataGridView1.Rows[rowIndex].Cells["FullName"].Value.ToString();
}
2 ответа
Решение
Потому что, к сожалению, этот столбец таблицы данных на самом деле не совпадает с именем вашего столбца DataTable. Если вы посмотрите на коллекцию столбцов в окне "Свойства дизайнера", то увидите, что она, вероятно, имеет имя типа "DataGridViewColumn4" или аналогичное.
Если вы знаете индекс, вы должны использовать его или переименовать столбцы в имена столбцов DT.
В случае, если это не совсем очевидно, программное добавление флажка к вашему сетевому представлению с набором имен должно выглядеть следующим образом:
DataGridViewCheckBoxColumn col = new DataGridViewCheckBoxColumn();
col.Width = 90;
col.HeaderText = "Sync To Vend?"; //Header cell text
col.Name = "SyncVendBox"; //This is the important part
ProductGrid.Columns.Insert(2, col);
И если вы хотите поставить галочку:
for (int i = 0; i < ProductGrid.Rows.Count; i++)
{
ProductGrid.Rows[i].Cells["SyncVendBox"].Value = true;
}