[c#] 将List <T>绑定到WinForm中的DataGridView


Answers

每次向List添加新元素时,都需要重新绑定Grid。 就像是:

List<Person> persons = new List<Person>();
persons.Add(new Person() { Name = "Joe", Surname = "Black" });
persons.Add(new Person() { Name = "Misha", Surname = "Kozlov" });
dataGridView1.DataSource = persons;

// added a new item
persons.Add(new Person() { Name = "John", Surname = "Doe" });
// bind to the updated source
dataGridView1.DataSource = persons;
Question

我上课了

class Person{
      public string Name {get; set;}
      public string Surname {get; set;}
}

以及我添加一些项目的List<Person> 。 该列表绑定到我的DataGridView

List<Person> persons = new List<Person>();
persons.Add(new Person(){Name="Joe", Surname="Black"});
persons.Add(new Person(){Name="Misha", Surname="Kozlov"});
myGrid.DataSource = persons;

没有问题。 myGrid显示两行,但是当我将新项添加到我的persons列表时, myGrid不会显示新的更新列表。 它只显示我之前添加的两行。

那么问题是什么?

每次重新绑定都很有效。 但是当我每次对DataTable进行一些更改时,我都会将DataTable绑定到网格上,因此不需要重新绑定myGrid

如何在不重新绑定的情况下解决它?







Links