Salut,

Je rempli un DatagridView à partir d'un fichier XML. Avec moins de 100 lignes et 10 colonnes pas de problème.
Mais à 1000, 1500 lignes cela devient très lent.
Ci joint le code qui me permet de remplir mon dtgv :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
               while (reader.Read())
               {
                   if (reader.Name.Equals("Lignes"))
                   {
                       node = doc.ReadNode(reader);
                       int ligne = 1;
                       int numLigne = Int32.Parse(node.Attributes.GetNamedItem("nombre").Value);
                       int nbcol = 0;

                       this.Rows.Add(numLigne);

                       foreach (XmlNode Fils in node.ChildNodes)
                       {
                            if (Fils.Name.Equals("Ligne"))
                           {
                               this.Rows[ligne - 1].Cells[0].ToolTipText = "1";
                               this.Rows[ligne - 1].Cells[1].ToolTipText = ligne.ToString();
                              foreach (XmlNode ligneNode in Fils.ChildNodes)
                               {
                                    int colonne = Int32.Parse(ligneNode.Attributes.GetNamedItem("index").Value);
                                    String valeur = ligneNode.Attributes.GetNamedItem("valeur").Value.ToString() ;
                                        if (valeur != "null")
                                        {
                                            valeur = valeur.Replace("\\Ampersand", "&");
                                            this.Rows[ligne - 1].Cells[colonne].Value = valeur;
                                        }
                               }
                               ligne = ligne + 1;
                           }
                           else MessageBox.Show("Nom de noeud inconnu : " + reader.Name);
                       }
                   }
               }
               reader.Close();
Cela marche très bien jusqu'à qq centaines de lignes. J'ai profilé le code et visiblement ce qui prend du temps c'est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
this.Rows[ligne - 1].Cells[colonne].Value = valeur;
Comment peut 'on accélérer les choses ?
Par avance merci de votre aide.