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; }
}
然後,您可以創建教師的列表,它代表了主/明細情況:
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
。
我一切絲像這樣:
teachersBindingSource.DataSource = teachers;
studentsBindingSource.DataSource = teachersBindingSource;
studentsBindingSource.DataMember = "Students";
teachersDataGridView.DataSource = teachersBindingSource;
studentsDataGridView.DataSource = studentsBindingSource;
而且形式從教師電網選擇一個項目上跑起來的時候,就好像被施了魔法改變學生的網格。
爲了管理插入,更新和刪除您將需要實現某種變化的跟蹤自己(或使用ORM如實體框架或NHibernate的)。這是一個值得自己提出的問題,因此請閱讀這些技術(並查看下面的博客文章),並在遇到一些具體問題時再回來。
對於這個答案,我沉重借用從this優秀的後 - 我給出的例子是完整的,避免了大量的中,作者例子的複雜性,但最終你可能會想至少知道的一切他討論。下載他的演示,並看看。
不要忘記標記答案爲接受,如果你有你想要的信息.. –