Ich habe zwei Klassen: Employee
und EmployeeGridViewAdapter
. Employee
besteht aus mehreren komplexen Typen. EmployeeGridViewAdapter
wickelt eine einzelnes Employee
und setzt seine Mitglieder als abgeflachte Satz von Systemtypen so ein Datagridview Anzeige handhaben kann, Bearbeitung usw.Synchronisieren einer Sammlung umgebrochener Objekte mit einer Sammlung unverpackter Objekte
mir VS des eingebaute Unterstützung unter Verwendung einen POCO in eine Datenquelle zum Drehen, die mich dann an ein BindingSource
Objekt anhängen. Wenn ich die DataGridView
an die BindingSource
anschließe, erstellt es die erwarteten Spalten, und zur Laufzeit kann ich die erwarteten CRUD-Operationen ausführen. Bis jetzt ist alles gut.
Das Problem ist die Sammlung von Adaptern und die Sammlung von Mitarbeitern wird nicht synchronisiert. So werden alle Mitarbeiter, die ich eine Laufzeit erstellen nie dauerhaft erhalten. Hier ist ein Ausschnitt aus dem Code, der die Sammlung von EmployeeGridViewAdapter
‚s erzeugt:
var employeeCollection = new List<EmployeeGridViewAdapter>();
foreach (var employee in this.employees)
{
employeeCollection.Add(new EmployeeGridViewAdapter(employee));
}
this.view.Employees = employeeCollection;
ziemlich geradlinig, aber ich kann nicht herausfinden, wie sich Änderungen zu synchronisieren, wieder auf die ursprüngliche Sammlung. Ich kann mir vorstellen, dass Änderungen bereits bearbeitet werden, weil beide Sammlungen auf dieselben Objekte verweisen, aber das Erstellen neuer Mitarbeiter und das Löschen von Mitarbeitern geschieht nicht, so dass ich mir nicht sicher sein kann.
@Kenneth: Was haben Sie getan, um Ihr Problem zu lösen? – VoidDweller
Wie wird die ObservableViewModelCollection-Lösung auf http://stackoverflow.com/questions/1256793/mvvm-sync-collections angewendet? –