【发布时间】:2010-03-11 15:35:04
【问题描述】:
我有两个班级:Employee 和 EmployeeGridViewAdapter。 Employee 由几种复杂类型组成。 EmployeeGridViewAdapter 包装单个 Employee 并将其成员公开为一组扁平的系统类型,因此 DataGridView 可以处理显示、编辑等。
我正在使用 VS 的内置支持将 POCO 转换为数据源,然后我将其附加到 BindingSource 对象。当我将 DataGridView 附加到 BindingSource 时,它会创建预期的列,并且在运行时我可以执行预期的 CRUD 操作。到目前为止一切都很好。
问题是适配器的集合和员工的集合没有同步。因此,我创建运行时的所有员工都不会被持久化。这是生成 EmployeeGridViewAdapter 集合的代码的 sn-p:
var employeeCollection = new List<EmployeeGridViewAdapter>();
foreach (var employee in this.employees)
{
employeeCollection.Add(new EmployeeGridViewAdapter(employee));
}
this.view.Employees = employeeCollection;
非常简单,但我不知道如何将更改同步回原始集合。我想已经处理了编辑,因为两个集合都引用了相同的对象,但是没有创建新员工和删除员工,所以我不能确定。
【问题讨论】:
-
@Kenneth:你做了什么来解决你的问题?
-
如何将 ObservableViewModelCollection
解决方案应用于stackoverflow.com/questions/1256793/mvvm-sync-collections。
标签: c# collections synchronization