Управления Datagridview Сохранить Изменения На Изменения Строки

Я пытаюсь сохранить запись после строки DataGridView.

Я видел, как решения используют RowValidated событие, однако, когда строки сортируются, то запись прибегает перед RowValidation событие. Я также попытался получить строку, используя BindingSource текущее свойство, но текущее свойство уже изменено. То же самое относится и к Роуливингу.

Я пробовал использовать RowChanged событие на datatable напрямую, и это работает ЛАДНО.

Я закончил тем, что использовал RowValidation событие и получение изменений из datatable (GetChange()), но это не идея.

кроме того, для удаления я использовал UserDeletingRow событие, но опять же, это не идея.

каков наилучший способ сохранения записей после выхода из строки?

2 ответов


вы взглянули на .RowLeave?

private void dataGridView1_RowEnter(object sender, 
    DataGridViewCellEventArgs e)
{
    for (int i = 0; i < dataGridView1.Rows[e.RowIndex].Cells.Count; i++)
    {
        dataGridView1[i, e.RowIndex].Style.BackColor = Color.Yellow;
    }
}

private void dataGridView1_RowLeave(object sender, 
    DataGridViewCellEventArgs e)
{
    for (int i = 0; i < dataGridView1.Rows[e.RowIndex].Cells.Count; i++)
    {
        dataGridView1[i, e.RowIndex].Style.BackColor = Color.Empty;
    }
}

источник: http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rowleave.aspx


вы пробовали DataGridView.RowValidating Event и .IsCurrentRowDirty?

    private void dataGridView1_RowValidating(object sender, DataGridViewCellCancelEventArgs e)
    {
        if (dataGridView1.IsCurrentRowDirty)
        {
           //Do stuff
        }
    }