Mit*_*nca 7 c# generics datasource list winforms
这是我的代码(这是一个非常简单的例子):
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; }
}
Run Code Online (Sandbox Code Playgroud)
当您按下按钮时,数据IS将添加到列表中,但不会显示在列表中DataGridView.我错过了什么?
我曾尝试设置AutoGenerateColumns和VirtualMode到true,但它还是不解决问题.
但如果我只使用BindingList<T>而不是List<T>它确实有效。
示例代码:
BindingList<Person> bl;
public Form1()
{
InitializeComponent();
bl = new BindingList<Person>();
dataGridView1.DataSource = bl;
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Length > 0)
{
Person p = new Person();
p.Name = textBox1.Text;
bl.Add(p);
textBox1.Text = "";
textBox1.Focus();
}
}
Run Code Online (Sandbox Code Playgroud)
但我仍然想弄清楚如何在DataGridView将其与列表绑定后显示数据。