如何在DataGridView中实现软删除

时间:2013-09-12 10:17:40

标签: c# winforms datagrid datagridview soft-delete

我有一个绑定到对象数据源的DataGridView。该对象具有属性“IsDeleted”。当用户按下删除键,或单击删除按钮,或以其他方式删除行时,我想设置“IsDeleted”标志而不是删除行。 (然后我希望datagridview更新)。

我需要实现此行为的单一联系点是什么?

我不想单独尝试处理所有用户路径。

1 个答案:

答案 0 :(得分:0)

您可以手动处理事件UserDeletingRowCancel并执行您自己的deletion,如下所示:

private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e){
   e.Cancel = true;//Cancel the actual deletion of row
   //You can just hide the row instead
   e.Row.Visible = false;
   //Then set the IsDeleted of the underlying data bound item to true
   ((YourObject)e.Row.DataBoundItem).IsDeleted = true;
}

您刚刚说过您的对象有一个名为IsDeleted的属性,所以我认为它被称为YourObject,您必须将DataBoundItem强制转换为该类型,以便您可以访问{ {1}}属性并将其设置为IsDeleted。就是这样。