2014-10-18 3 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

+0

как это сделать? – tariq

+0

try: bs.DataSource = null; bs.DataSource = работает; – failedprogramming

ответ

1

необходимо перезагрузить источник данных вашего BindingSource.

Попробуйте

private void btnAddNew_Click(object sender, EventArgs e) 
{ 
    ... 
    bs.DataSource = null; 
    bs.DataSource = works; 
} 
Смежные вопросы