这样试下呢:
private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
this.dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
private void dataGridView1_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
this.dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
DataRow row = table.Rows[rowIndex];
System.Console.WriteLine("in dataTable " + row[1]);
System.Console.WriteLine("row.RowState = " + row.RowState);
System.Console.WriteLine("row.version = " + row[1,DataRowVersion.Proposed]);我在电脑上运行了以下,打印出来是Unchanged,但是被修改的那个字段的值,保存在DataRowVersion.Proposed中。
而此时DataRowVersion.Default等于DataRowVersion.Proposed。
DataRowVersion.Original和DataRowVersion.Current中保存的都是原值。MSDN对DataRowVersion的解释:在DataRowState 等于Detached的时候,DataRowVersion.Default等于DataRowVersion.Proposed。
但此时打印出的row.RowState = Unchanged。public enum DataRowVersionThe default version of DataRowState. For a DataRowState value of Added, Modified or Deleted, the default version is Current. For a DataRowState value of Detached, the version is Proposed.