1

我有以下服务等级:

public class MyService 
{
    List<MyModel> GetData() { .... }
    void Save(List<MyModel> changedRows) { .... }
}

是否可以将 DataGridView 的数据源绑定到返回的列表myService.GetDate();然后用户在 DataGridView 中编辑并单击“SaveAll”按钮通过调用函数提交所有更改myService.Save(???)

是否可以获取已更改行的列表并将其传递给myService.Save(list)

这似乎是一个常见问题,但我找不到太多信息。我使用了错误的方法吗?

4

1 回答 1

1

我能想到的几个选项:

MyModel1)您可以将类包装在MyModelView包含MyModel属性和Status枚举属性(插入、更新、删除)的类中。当您获得 时List<MyModel>,您可以创建并填充一个List<MyModelView>并将该新列表绑定到 datagridview。每当用户编辑行时,您都会Status根据用户操作(插入、更新、删除)更新属性。请注意,这还需要一些额外的工作来过滤掉已删除的行,因为您可能不希望显示已删除的行。

2)您将List<MyModel>直接绑定到datagridview,但有一个单独List<MyModelView>的仅包含更改的行。任何时候有变化,你都会在这个单独的列表中跟踪变化。

于 2012-05-19T05:39:58.737 回答