Tengo dos clases: Employee
y EmployeeGridViewAdapter
. Employee
se compone de varios tipos complejos. EmployeeGridViewAdapter
envuelve un solo Employee
y expone sus miembros como un conjunto aplanado de tipos de sistemas por lo que un DataGridView puede manejar visualización, edición, etc.Sincronización de una colección de objetos envueltos con una colección de objetos sin envolver
estoy usando soporte nativo de VS para convertir a poco en una fuente de datos, que luego adjuntar a un objeto BindingSource
. Cuando adjunto el DataGridView
al BindingSource
crea las columnas esperadas y en el tiempo de ejecución puedo realizar las operaciones esperadas de CRUD. Todo está bien hasta ahora.
El problema es la recopilación de adaptadores y la recopilación de empleados no se está sincronizando. Entonces todos los empleados que creo un tiempo de ejecución nunca se mantienen. He aquí un fragmento del código que genera el cobro de EmployeeGridViewAdapter
's:
var employeeCollection = new List<EmployeeGridViewAdapter>();
foreach (var employee in this.employees)
{
employeeCollection.Add(new EmployeeGridViewAdapter(employee));
}
this.view.Employees = employeeCollection;
bastante sencillo, pero no puedo encontrar la manera de sincronizar los cambios de nuevo a la colección original. Me imagino que las ediciones ya se están manejando porque ambas colecciones hacen referencia a los mismos objetos, pero la creación de nuevos empleados y la eliminación de empleados no están sucediendo, así que no puedo estar seguro.
@Kenneth: ¿Qué hiciste para resolver tu problema? – VoidDweller
¿Qué le parece aplicar la solución ObservableViewModelCollection a http://stackoverflow.com/questions/1256793/mvvm-sync-collections. –