如何绑定列表
绑定列表
考虑以下场景:
class Person{ public string Name {get; set;} public string Surname {get; set;} }
您可能有一个 List
List<Person> persons = new List<Person>(); persons.Add(new Person(){Name="Joe", Surname="Black"}); persons.Add(new Person(){Name="Misha", Surname="Kozlov"});
最初,这些项目将显示在 DataGridView 中。但是,如果您向人员列表添加新项目,DataGridView 将不会显示它们。
问题
问题在于 List 没有实现IBindingList,这意味着 DataGridView 不会收到有关更改的通知
解决方案
要解决此问题,请使用 BindingList
var list = new BindingList<Person>(persons); myGrid.DataSource = list;
使用 BindingSource 进行高级绑定
您可以使用 BindingSource 进一步实现此目的,它提供了排序等附加功能、过滤和并发。
var list = new List<Person>() { new Person { Name = "Joe", }, new Person { Name = "Misha", }, }; var bindingList = new BindingList<Person>(list); var source = new BindingSource(bindingList, null); grid.DataSource = source;
通过遵循这些技术,您可以绑定列表
以上是如何动态更新绑定到列表的 WinForms DataGridView?的详细内容。更多信息请关注PHP中文网其他相关文章!