Synchronizing a collection of wrapped objects with a collection of unwrapped objects
Posted
by Kenneth Cochran
on Stack Overflow
See other posts from Stack Overflow
or by Kenneth Cochran
Published on 2010-03-11T15:35:04Z
Indexed on
2010/03/24
5:43 UTC
Read the original article
Hit count: 409
I have two classes: Employee
and EmployeeGridViewAdapter
. Employee
is composed of several complex types. EmployeeGridViewAdapter
wraps a single Employee
and exposes its members as a flattened set of system types so a DataGridView can handle displaying, editing, etc.
I'm using VS's builtin support for turning a POCO into a data source, which I then attach to a BindingSource
object. When I attach the DataGridView
to the BindingSource
it creates the expected columns and at runtime I can perform the expected CRUD operations. All is good so far.
The problem is the collection of adapters and the collection of employees aren't being synchronized. So all the employees I create an runtime never get persisted. Here's a snippet of the code that generates the collection of EmployeeGridViewAdapter
's:
var employeeCollection = new List<EmployeeGridViewAdapter>();
foreach (var employee in this.employees)
{
employeeCollection.Add(new EmployeeGridViewAdapter(employee));
}
this.view.Employees = employeeCollection;
Pretty straight forward but I can't figure out how to synchronize changes back to the original collection. I imagine edits are already handled because both collections reference the same objects but creating new employees and deleting employees aren't happening so I can't be sure.
© Stack Overflow or respective owner