2014-10-18 75 views
0

我第一次尝试WinForms中的一些东西。我有一个问题,对我来说显得非常微不足道,但后来我不是WinForms的人。搜索了很多,但找不到解决方案。DataGridView不在第二行后更新

下面是代码,不用担心内容本身,它只是测试代码。问题是,当我点击AddNew按钮时,一行被添加到gridview,但之后没有行被添加,无论用户点击AddNew按钮多少次。你可以在下面的图片中看到。

您可以指出为什么在添加行后没有行被添加到gridview中。 AddNew按钮仅适用于单击。尽管它应该一次又一次地添加第二行。

在此先感谢。

public partial class JobCard : UserControl 
    { 
     List<Work> works = new List<Work>(); 
     BindingSource bs = new BindingSource(); 

     public JobCard() 
     { 
      InitializeComponent(); 

      works.Add(new Work() { S_No = 1, JobCategoryId = 1, JobCategoryName = "electricals", JobId = 1, JobName = "lights", Labour = 1, MaterialName = "tape", PartName = "headlight" }); 

      bs.DataSource = works; 
      dataGridView1.AutoGenerateColumns = true; 
      dataGridView1.DataSource = bs; 
     } 

     private void btnAddNew_Click(object sender, EventArgs e) 
     { 
      works.Add(new Work() { S_No = 2, JobCategoryId = 2, JobCategoryName = "electricals", JobId = 2, JobName = "lights", Labour = 2, MaterialName = "tape", PartName = "headlight" }); 
      dataGridView1.DataSource = works; 
     } 

    } 

Application snapshot

+0

我认为问题出在你的按钮代码:dataGridView1.DataSource =工作。你应该重置绑定源。 – failedprogramming 2014-10-18 06:14:31

+0

该怎么做? – tariq 2014-10-18 06:15:56

+0

尝试:bs.DataSource = null; bs.DataSource =工程; – failedprogramming 2014-10-18 06:16:41

回答

1

您需要重置的BindingSource的数据源。

尝试

private void btnAddNew_Click(object sender, EventArgs e) 
{ 
    ... 
    bs.DataSource = null; 
    bs.DataSource = works; 
}