2016-09-17 5 views
0

У меня есть DataGridView и button. При нажатии этого 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(); 
    } 

Теперь, когда я нажимаю на эту кнопку в первый раз, когда он правильно добавляет в новой строке. Если, однако, я нажимаю на него второй раз, когда он не появляется. Breakpointing показывает мне, что datasource действительно получает дополнительные предметы. Они просто не появляются.

Кто-нибудь знает, как это исправить?

+0

@mwisnicki Я сожалею, но я не уверен, что вы просите. – Thijser

ответ

1

Вам нужно позвонить refresh() раз обновить, также установить DataSource обнулить,

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

Это не сработало. Результаты одинаковы. – Thijser

+0

@Thijser Это должно работать, вы установили источник данных в null до установки новых значений? – Sajeetharan

+0

Нет, я просто установил его, я даже прямо скопировал код (за исключением того, что я воспользовался обновлением и обновлением) – Thijser