BindingSources가이 문제를 처리합니다. 예를 들어
내가 두 개의 클래스, 교사와 학생이 있다고 :
public class Teacher
{
private List<Student> _students = new List<Student>();
public string Name { get; set; }
public string Class { get; set; }
public List<Student> Students { get { return _students; } }
}
public class Student
{
public string Name { get; set; }
public int Age { get; set; }
}
그런 다음 마스터/상세 상황을 나타내는 교사의 목록을 만들 수 있습니다
: 내 폼 I에
List<Teacher> teachers = new List<Teacher>();
Teacher t = new Teacher();
t.Name = "Mr. Smith";
t.Class = "A1";
teachers.Add(t);
Student s = new Student();
s.Name = "Jimmy Jones";
s.Age = 6;
t.Students.Add(s);
s = new Student();
s.Name = "Jane Doe";
s.Age = 5;
t.Students.Add(s);
t = new Teacher();
t.Name = "Ms. Allen";
t.Class = "B3";
teachers.Add(t);
s = new Student();
s.Name = "Sally Student";
s.Age = 7;
t.Students.Add(s);
을 DataGridViews
, teachersDataGridView
및 studentsDataGridView
과 두 개의 바인딩 소스 teachersBindingSource
및 studentsBindingSource
이 있습니다. 그래서 같은
I 와이어 모든 업 :
teachersBindingSource.DataSource = teachers;
studentsBindingSource.DataSource = teachersBindingSource;
studentsBindingSource.DataMember = "Students";
teachersDataGridView.DataSource = teachersBindingSource;
studentsDataGridView.DataSource = studentsBindingSource;
그리고 교사 그리드에서 항목을 선택 양식에 최대 실행할 때 마술처럼
학생들 그리드를 변경합니다.
관리 삽입, 업데이트
당신이 자신을 추적 변화의 일종을 구현 (또는 엔티티 프레임 워크 또는 nHibernate 수와 같은 ORM을 사용)해야합니다 삭제합니다. 독자적인 질문을 할 가치가있는 주제이기 때문에 해당 기술을 읽고 (아래에서 내가 좋아하는 블로그 게시물을보십시오) 특정 문제가있을 때 다시 돌아옵니다. 내가 this 우수 게시물에서 많이 빌려이 답변
- 내가 준 예는 완료되고 그 저자의 예의에 많은 복잡성을 피할 수 있지만, 결국 당신은 아마 적어도 모든 것에 대해 알고 싶은 것 그는 토론합니다. 데모를 다운로드하고 살펴보십시오.
원하는 정보가 있으면 받아 들일 수있는 답변을 표시하지 마십시오. –