【发布时间】:2018-09-14 16:06:44
【问题描述】:
我有一个与 dataGridView 绑定的人员列表,但是当我添加新数据并存储到列表中时,它并没有显示它已添加到 dataGridView 中。
代码如下所示
private IList<Person> personList = new List<Person>();
private void AddPerson()
{
var count = personList.Count;
var finId = 0;
if (count != 0)
{
var valid = personList.LastOrDefault();
if (valid != null)
{
finId = valid.Id;
}
}
var person = new Person
{
Id = ++finId,
FirstName = tbFirstName.Text,
LastName = tbFirstName.Text,
Email = tbEmail.Text,
DateOfBirth = dtDateOfBirth.Value
};
personList.Add(person);
}
private void PopulateGrid()
{
//dataGridView1.DataSource = personList;
dataGridView1.Rows.Add(new Person
{
Id = 1,
FirstName = "Randolf",
LastName = "Segubre",
Email = "rsegubre@gmail.com",
DateOfBirth = DateTime.Parse("08/28/1991"),
});
personBindingSource.DataSource = personList;
}
private void Form1_Load(object sender, EventArgs e)
{
PopulateGrid();
}
private void btnAdd_Click(object sender, EventArgs e)
{
AddPerson();
MessageBox.Show("Successfully Added","INFORMATION",MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Clear();
}
dataGridView 显示的默认值,但是当您在程序运行时添加数据时,它不会显示 dataGridView。
但它显示它已添加到personList。只是没有在dataGridView中添加
【问题讨论】:
-
使用 BindingList 代替。
-
DataGridView bound to List does not reflect changes when adding objects to the List 的可能重复项。我在搜索引擎中使用您自己的标题不到一秒钟就找到了这个。