绑定到列表的DataGridView在向列表添加对象时不反映更改
本文关键字:列表 对象 添加 DataGridView 绑定 | 更新日期: 2024-09-23 20:43:31
我想知道我需要做什么才能使DataGridView按预期运行:
我确实有一个List<ioChannel>
(名为myList),包含以下类型的对象:
public class ioChannel
{
public string Name { get; set; }
public int Id { get; set; }
}
我试图将DataGridView绑定到此列表:
bs = new BindingSource { DataSource = myList };
dgvChannels.DataSource = bs;
现在我创建了一个按钮,将元素添加到myList:
private void btAddChannel_Click(object sender, EventArgs e)
{
myList.Add(new ioChannel() { Id = myList.Count, Name = "My Channel" });
}
当我按下按钮时,我的列表会填充新的ioChannel
,但dgvChannels
不会添加任何行。为了实现这一点,我需要做什么?
BTW:在将BindingSource指定为DataSource之前,当myList
填充了一些ioChannel
时,就会在网格中正确显示。
正如@Loathing评论的那样BindingList也对我有用。它将如何工作:
BindingList<ioChannel> myList = new BindingList<ioChannel>();
dgvChannels.DataSource = myList;
BindingList具有通知列表中更改的事件。为了让datagridview能够被通知重新绘制自己,请检查此项。有关详细信息,请访问msdn。