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 :
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
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();Comment peut 'on accélérer les choses ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part this.Rows[ligne - 1].Cells[colonne].Value = valeur;
Par avance merci de votre aide.
Partager