두 클래스가 있습니다 : Employee
및 EmployeeGridViewAdapter
입니다. Employee
은 여러 가지 복잡한 유형으로 구성됩니다. EmployeeGridViewAdapter
등, 하나의 Employee
를 래핑하고 DataGridView를 편집, 표시 처리 할 수 있도록 시스템 유형의 평탄화 된 세트로 멤버를 노출래핑 된 객체의 컬렉션을 래핑되지 않은 객체의 컬렉션과 동기화
BindingSource
개체에 첨부하십시오. DataGridView
을 BindingSource
에 첨부하면 예상되는 열이 만들어지고 런타임에 예상 한 CRUD 작업을 수행 할 수 있습니다. 지금까지는 모두 좋았습니다.
문제는 어댑터 모음이며 직원 컬렉션은 동기화되지 않습니다. 따라서 런타임을 작성한 모든 직원은 절대로 지속되지 않습니다. 여기 EmployeeGridViewAdapter
년대의 컬렉션을 생성하는 코드의 조각이다 :
var employeeCollection = new List<EmployeeGridViewAdapter>();
foreach (var employee in this.employees)
{
employeeCollection.Add(new EmployeeGridViewAdapter(employee));
}
this.view.Employees = employeeCollection;
꽤 정직하지만 나는 원래 컬렉션에 변경 내용을 동기화하는 방법을 알아낼 수 없습니다. 두 개의 콜렉션 모두 동일한 객체를 참조하지만 새 직원을 생성하고 직원 삭제가 발생하지 않으므로 편집이 이미 처리 된 것 같아 확신 할 수 없습니다.
@Kenneth : 문제를 해결하기 위해 무엇을 했습니까? – VoidDweller
ObservableViewModelCollection 솔루션을 http://stackoverflow.com/questions/1256793/mvvm-sync-collections에 적용하는 방법은 어떻습니까? –