Tôi có hai lớp: Employee
và EmployeeGridViewAdapter
. Employee
bao gồm một số loại phức tạp. EmployeeGridViewAdapter
kết thúc tốt đẹp một đơn Employee
và hiển thị các thành viên của nó dưới dạng tập hợp các loại hệ thống để DataGridView có thể xử lý hiển thị, chỉnh sửa, v.v.Đồng bộ hóa bộ sưu tập các đối tượng được bao bọc với bộ sưu tập các vật chưa được tháo
Tôi đang sử dụng hỗ trợ dựng sẵn của VS để chuyển POCO thành nguồn dữ liệu đính kèm vào một đối tượng BindingSource
. Khi tôi đính kèm các DataGridView
vào BindingSource
nó tạo ra các cột dự kiến và trong thời gian chạy tôi có thể thực hiện các hoạt động CRUD dự kiến. Tất cả là tốt cho đến nay.
Vấn đề là tập hợp các bộ điều hợp và tập hợp nhân viên không được đồng bộ hóa. Vì vậy, tất cả các nhân viên tôi tạo ra một thời gian chạy không bao giờ được tiếp tục tồn tại. Dưới đây là một đoạn mã mà tạo ra bộ sưu tập của EmployeeGridViewAdapter
's:
var employeeCollection = new List<EmployeeGridViewAdapter>();
foreach (var employee in this.employees)
{
employeeCollection.Add(new EmployeeGridViewAdapter(employee));
}
this.view.Employees = employeeCollection;
Khá thẳng về phía trước nhưng tôi không thể tìm ra cách để đồng bộ hóa những thay đổi về bộ sưu tập gốc. Tôi tưởng tượng chỉnh sửa đã được xử lý bởi vì cả hai bộ sưu tập tham chiếu cùng một đối tượng nhưng tạo nhân viên mới và xóa nhân viên không xảy ra vì vậy tôi không thể chắc chắn.
@Kenneth: Bạn đã làm gì để giải quyết vấn đề của mình? – VoidDweller
Cách áp dụng giải pháp ObservableViewModelCollection cho http://stackoverflow.com/questions/1256793/mvvm-sync-collections. –