Когда меняю местами столбцы в datagridview данные не сохраняются!
Windows Forms. Есть Datagridview. В него можно загружать таблицу Excel. После загрузки можно удалить столбец, удалить строку и поменять место колонки. После изменения места колонки - она не меняется в данных, а только визуально. Как это пофиксить?
Ответы (2 шт):
Автор решения: yava43DEVELOPER
→ Ссылка
Не нужно что то там сохранять или выдумывать какие-то прокси. Если вам необходимо достать данные из УЖЕ измененной и отредактированной таблицы DGV. то это можно сделать через DisplayIndex.
var data = datagridview1[datagridview1.Columns["индекс нужной колонки"].DisplayIndex, "индекс нужной строки"].Value.ToString();
Автор решения: yava43DEVELOPER
→ Ссылка
Все оказалось куда мудренее. На момент считывания данных с таблицы, необходимо инициализировать каждый столбец вот таким способом:
DataGridViewColumnCollection columnCollection = dataGridView1.Columns;
DataGridViewColumn one = columnCollection.GetFirstColumn(DataGridViewElementStates.Visible);
DataGridViewColumn two = columnCollection.GetNextColumn(one, DataGridViewElementStates.Visible, DataGridViewElementStates.None);
DataGridViewColumn three = columnCollection.GetNextColumn(two, DataGridViewElementStates.Visible, DataGridViewElementStates.None);
DataGridViewColumn four = columnCollection.GetNextColumn(three, DataGridViewElementStates.Visible, DataGridViewElementStates.None);
// Только сейчас можно с уверенностью получить данные из нужной ячейки вот так:
data = dataGridView1[one.Index, i].Value.ToString(),