2016-09-17 65 views
0

我有一个DataGridViewbutton。在按这button它应该添加到DataGridView的新行。为了做到这一点,我有以下代码:C#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确实收到额外的项目。他们只是不显示。

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

+0

@mwisnicki我很抱歉,但我不知道你在问什么。 – Thijser

回答

1

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

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

这没有奏效。结果是一样的。 – Thijser

+0

@ Thijser它应该工作,您在设置新值之前是否将数据源设置为空? – Sajeetharan

+0

不,我只是设置它,我甚至直接复制你的代码(除了我大写更新和刷新) – Thijser