Я пытаюсь заполнить свой DataGridView пользовательскими столбцами, импортированными из Excel. Это должно быть легко, но на всю жизнь я застрял в мозгу. Я должен иметь возможность выбирать определенные столбцы (работает), отправлять заголовки столбцов в мой класс excel для анализа данных из этого столбца (работает), отправлять проанализированные данные в список (работает), а затем импортировать данные в datagridview установив мой DataSource в качестве моего списка (я создаю текст заголовка столбца, но код создает столбец с именем Value и добавляет в него свои данные). Вот мой код, который создает проблему:
private void btnCreateTable_Click(object sender, EventArgs e)
{
List<StringValue>[] listArr = new List<StringValue>[columnCount];
ExcelClass getData = new ExcelClass();
tabControl1.SelectedTab = tabDataTable;
dgv.Visible = true;
DataGridViewTextBoxColumn t = new DataGridViewTextBoxColumn();
//dgvSelectedHeaders.Columns[i].Name = selectedHeaders[i];
for (int i = 0; i < columnCount; i++)
{
//dgv[i].DataSource = getData.GetDataFromExcel(headersArr[i], path);
listArr[i] = getData.GetDataFromExcel(selectedHeaders[i], path);
t.Name = selectedHeaders[i];
t.HeaderText = selectedHeaders[i];
dgv.Columns.Add(t);
dgv.DataMember = "String";
dgv.DataSource = listArr[i];
for (int j = 0; j < getData.RowCount; j++)
{
dgv.Rows.Add();
for (int k = 0; k < getData.RowCount; k++)
{
dgv[k, j].Value = listArr[j][k].ToString();
}
}
}
Если я выбираю более одного столбца, он показывает первый, но я получаю сообщение об ошибке после первого в строке dgv.Columns.Add(t); ... InvalidOperationException, при условии, что столбец уже принадлежит элементу управления DataGridView... Я знаю, что это два вопроса, но я думаю, что они как-то связаны друг с другом.
Заранее спасибо, и если вам нужно больше кода, дайте мне знать.