这是我的代码(这是一个非常简单的例子):
public partial class Form1 : Form
{
List<Person> listPersons;
public Form1()
{
InitializeComponent();
listPersons = new List<Person>();
dataGridView1.DataSource = listPersons;
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Length > 0)
{
Person p = new Person();
p.Name = textBox1.Text;
listPersons.Add(p);
}
}
}
class Person
{
public string Name { get; set; }
}
当您按下按钮时,数据会添加到列表中,但不会显示在 DataGridView
中。我错过了什么?
我已经尝试将 AutoGenerateColumns
和 VirtualMode
设置为 true
,但这也没有解决问题。
最佳答案
已经有一段时间了,自从处理试图将 List
反正我用的是BindingListView ,这是非常快速和容易的。你只需要做:
List<Customer> customers = GetCustomers();
BindingListView<Customer> view = new BindingListView<Customer>(customers);
dataGridView1.DataSource = view;
你就完成了。我已经有几年没看过源代码了,但我相信它用实现 IBindingList 的类包装了 List
关于c# - 将 DataGridView 绑定(bind)到 List<T> 不显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14024893/