Bonjour,
Le but de mon application est de faire un treeview dans lequel j'affiche les noms de mes dossiers et une fois je choisis un dossier(Click) j'afficherai son contenu(fichiers qu'il contient). L'affichage du contenu je le fais dans une DataGrid,
Voila mon code du datagrid, dans lequel j'ajoute mes colonnes et je les remplis:
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
36
37
38
39
40
41
42
 
 public void addColumns(List<String> list)
       {
           DataTable dt = new DataTable();
           DataColumn dtCol;
           DataRow dtRow;
           // Create ID column and add to the DataTable.
           dtCol = new DataColumn();
           dtCol.DataType = System.Type.GetType("System.String");
           dtCol.ColumnName = "ID";
           dtCol.AutoIncrement = false;
           dtCol.Caption = "ID";
           dtCol.ReadOnly = true;
           dtCol.Unique = true;
           // Add the column to the DataColumnCollection.
           dt.Columns.Add(dtCol);
           // Create Name column and add to the table
           dtCol = new DataColumn();
           dtCol.DataType = System.Type.GetType("System.String");
           dtCol.ColumnName = "FName";
           dtCol.AutoIncrement = false;
           dtCol.Caption = "First Name";
           dtCol.ReadOnly = true;
           dtCol.Unique = false;
           dt.Columns.Add(dtCol);
 
           // Create three rows to the table
           foreach (var item in list)
           {
               dtRow = dt.NewRow();
               if (item != null)
               {
                  _log.Debug("item not null  " + item);
                   dtRow["ID"] = item;
                   dtRow["FName"] = "blabla";
                   dt.Rows.Add(dtRow);
                   _log.Debug("Rows done");
               }               
           }
           _log.Debug("end of list ");
           myDG.DataSource = dt;
       }
Quand je clique sur un dossier je récupère la liste de son contenu via un web service , aprés je stoque la liste des noms des fichiers(le contenu) dans une liste, et cette liste que je passe en paramétre à la méthode addColumns()
Voila le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
foreach (var file in listFiles)
                        {                           
                            list.Add(file.name);                           
                        }
                        if(list != null)
                        {
                            _log.Debug("list not null");
                            foreach (var item in list)
                            {
                                _log.Debug("item = " + item);
                            }
                            addColumns(list);
}
Dans mon fichier de trace list n'est pas null, en plus j'ajouterai 3 éléments et à chaque fois ça m'affichera
Rows done
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 _log.Debug("Rows done");
Et au bout du 4éme élément, tout crash et ça me génère une exception
Exception non gérer : TargetInvocationException
Merci pour tout aide.