我得到了一个对象列表 - 比如在我的表单的构造函数中实例化类型Person
和DataGridView
。
public Form() {
List<Person> Persons = new List<Person>();
DataGridView.DataSource = Persons;
}
默认情况下,DataGridView
会为我的Person
类的每个属性(复杂类型除外?)显示一列。
但我只是想让它显示两列FirstName
和LastName
。
我知道我可以通过编程方式向我的DataGridView
添加列:
DataGridView.Columns.Add("Firstname", "Firstname");
但我不想像这样添加我的项目
foreach (var item in Persons) {
DataGridView.Rows.Add(item.FirstName);
}
我想要设置DataSource
的{{1}}。什么是解决这个问题的最佳方法?
提前谢谢!
编辑:
我的列表将被更新或重置等。我想更新列表并刷新绑定。我不想在我的DataGrid中处理一些看不见的IndexRow,这就是为什么我不想迭代所有项目并为每个人添加一行。我希望你现在明白我的问题
答案 0 :(得分:0)
如果你只打算在你的程序中的一个地方使用它,我会在你的属性上使用Browsable属性并将它们全部设置为False,除了Person.Firstname和Person.lastName
如果你需要在多个地方使用它,你可以制作一个人集合并公开一个名为FirstLastNameTable的DataTable对象或类似的东西,然后立即创建一个DataTable并绑定到它。