绑定到List的DataGridView在向List添加对象时不反映更改

时间:2015-03-03 12:45:15

标签: c# winforms data-binding datagridview

我想知道我需要做些什么来使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时,网格中的get显示正确。

1 个答案:

答案 0 :(得分:1)

@Loathing评论 BindingList 也为我工作。它将如何运作:

BindingList<ioChannel> myList = new BindingList<ioChannel>();
dgvChannels.DataSource = myList;

BindingList具有通知列表中的更改的事件。这样就可以通知datagridview重绘自己check this。有关更多信息,请访问msdn