C#datagridview添加未显示的额外项

时间:2016-09-17 11:42:10

标签: c# user-interface datagridview objectdatasource

我有DataGridViewbutton。按下此button后,它应在DataGridView中添加一个新行。为此,我有以下代码:

    List<NavigationInfo> navigationRules = new List<NavigationInfo>();
    private void button1_Click(object sender, EventArgs e)
    {
        navigationRules.Add(new NavigationInfo());
        setDataSource(navigationRules);
    }


    public void setDataSource(List<NavigationInfo> data)
    {
        this.dataGridView2.DataSource = data;
        this.dataGridView2.Show();
        this.dataGridView2.Invalidate();
        this.dataGridView2.Update();
    }

现在,当我第一次在新行中正确添加时,单击此按钮。但是,如果我第二次点击它就不显示。 Breakpointing告诉我datasource确实收到额外的项目。他们只是没有出现。

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

更新后需要调用refresh(),同时将DataSource设置为null,

this.dataGridView2.DataSource = null;
this.dataGridView2.DataSource = data;        
dataGridView2.update();
dataGridView2.refresh();