我想知道我需要做些什么来使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显示正确。
答案 0 :(得分:1)
@Loathing评论 BindingList 也为我工作。它将如何运作:
BindingList<ioChannel> myList = new BindingList<ioChannel>();
dgvChannels.DataSource = myList;
BindingList具有通知列表中的更改的事件。这样就可以通知datagridview重绘自己check this。有关更多信息,请访问msdn。