我有以下服务类:
public class MyService
{
List<MyModel> GetData() { .... }
void Save(List<MyModel> changedRows) { .... }
}
是否可以将DataGridView的数据源绑定到myService.GetDate()
返回的列表;然后用户在DataGridView中编辑并单击“SaveAll”按钮通过调用函数myService.Save(???)
来提交所有更改?
是否可以获取已更改行的列表并将其传递给myService.Save(list)
?
这似乎是一个常见问题,但我找不到太多信息。我使用了错误的方法吗?
答案 0 :(得分:1)
我能想到的情侣选择:
1)您可以将MyModel
类包含在MyModelView
类中,该类包含MyModel
属性和Status
枚举属性(插入,更新,删除)。获得List<MyModel>
后,您可以创建并填充List<MyModelView>
并将该新列表绑定到datagridview。用户每次编辑行时,都会根据用户操作(插入,更新,删除)更新Status
属性。请注意,这还需要为已删除的行filtering做一些额外的工作,因为您可能不希望显示已删除的行。
2)您将List<MyModel>
直接绑定到datagridview,但是有一个单独的List<MyModelView>
只包含已更改的行。只要有变更,您就可以跟踪此单独列表中的更改。