c# datagridview添加了不显示的额外项

本文关键字:显示 datagridview 添加 | 更新日期: 2023-09-27 18:07:33

我有一个DataGridView和一个button。在按下这个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();
    }

现在,当我第一次点击这个按钮时,它正确地添加了一个新行。然而,如果我点击它第二次它不显示。断点显示datasource确实接收了额外的项目。他们就是不出现。

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

c# datagridview添加了不显示的额外项

你需要调用refresh()一旦你更新,也设置DataSource为null,

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