2016-09-17 7 views
0

J'ai un DataGridView et un button. En appuyant sur ce button il devrait ajouter dans une nouvelle rangée dans le DataGridView. Pour ce faire, j'ai le code suivant:C# datagridview ajoutant des éléments supplémentaires n'apparaissant pas

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(); 
    } 

Maintenant, quand je clique sur ce bouton, la première fois, il ajoute correctement dans une nouvelle ligne. Si toutefois je clique dessus une seconde fois, il n'apparaitra pas. Le point d'arrêt montre que le datasource reçoit effectivement des éléments supplémentaires. Ils ne viennent pas.

Quelqu'un sait-il comment résoudre ce problème?

+0

@mwisnicki Je suis désolé mais je ne suis pas sûr de ce que vous demandez. – Thijser

Répondre

1

Vous devez appeler refresh() une fois que vous mettez à jour, définissez également le DataSource à null,

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

Cela n'a pas fonctionné. Les résultats sont les mêmes. – Thijser

+0

@Thijser Cela devrait fonctionner, avez-vous mis la source de données à zéro avant de définir les nouvelles valeurs? – Sajeetharan

+0

Non, je viens de le mettre, j'ai même copié directement sur votre code (sauf que j'ai mis à jour la mise à jour et rafraîchir) – Thijser