我正在尝试更新数据网格视图(将行移动到新索引)。我无法直接更新它,因为数据网格视图已绑定,所以我使用 dataTable 执行此操作。
var dataTable = ((DataView)dataGridViewWebFields.DataSource).Table;
var dataGridRow = dataGridViewWebFields.Rows.Cast<DataGridViewRow>().FirstOrDefault(r => r.Cells[0].Value.Equals(fieldName));
if (dataGridRow != null && dataGridRow.Index != newIndex)
{
var dataTableRow = GetWebFieldFromDataGridViewRow(dataGridRow);
var dataViewRow = dataGridViewWebFields.Rows[newIndex];
dataViewRow.DefaultCellStyle = dataGridRow.DefaultCellStyle;
var newRow = dataTable.NewRow();
newRow.ItemArray = dataTableRow.ItemArray;
dataTable.Rows.Remove(dataTableRow);
dataTableRow.Index = newIndex;
dataTable.Rows.InsertAt(newRow, newIndex);
dataGridViewWebFields.DataSource = dataTable.AsDataView();
}
问题是,在我将其保存到数据库并刷新控件后,数据网格视图的状态恢复为默认值(更改前)。我认为数据集上的某些内容未正确更新。你能指导我做错什么吗?