Имя столбца 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;
        }
Другие вопросы по тегам