Bonsoir,
ce message indique que les système est incapable de convertir un objet dans un type donné.
j'imagine que tu as ce message à l'execution, car comme ton ArrayList n'est pas typé, le compilateur ne peut pas savoir que la conversion est impossible.
pour eviter ce genre de surprise à l'execution utilise des collections typées, mà c'est le compilateur qui fera le travail.
est-ce que la methode chargementDansCollection donne bien une collection (arraylist) de programmes ?
au fait, inutile d'initialiser les variables tProgrammes et ceProgramme , car elles sont par la suite forcées.
//POUR ACTUALISER LA DATAGRIDVIEW
private void chargerDatagridview()
{
// Creation des variables
mesProgrammes lesProgrammes = new mesProgrammes();
liste = lesProgrammes.chargementDansCollection();
// Ajout des colonnes dans la datagridview
dgvFormProgramme.Columns.Add(Date);
dgvFormProgramme.Columns.Add(Heure);
dgvFormProgramme.Columns.Add(Lieu);
dgvFormProgramme.Columns.Add(Salle);
dgvFormProgramme.Columns.Add(Id);
int i=0;
// parcourir la collection et afficher dans la datagridview
foreach (XmlElement ligne in liste)
{
//ajout d'une ligne dans la datagriview
dgvFormProgramme.Rows.Add();
// .InnerText pour récupérer la valeur du noeud;
dgvFormProgramme[0, i].Value = ligne.SelectSingleNode("Date").InnerText;
dgvFormProgramme[1, i].Value = ligne.SelectSingleNode("Heure").InnerText;
dgvFormProgramme[2, i].Value = ligne.SelectSingleNode("Lieu").InnerText;
dgvFormProgramme[3, i].Value = ligne.SelectSingleNode("Salle").InnerText;
dgvFormProgramme[4, i].Value = i.ToString(); ;
i++;
}
Le problème est pointé sur le: foreach (XmlElement ligne in liste)
Impossible d'effectuer un cast d'un objet de type 'concert.programme' en type 'System.Xml.XmlElement'.
oui c'est normal, si tu as corrigé la methode chargementDansCollection pour generer une liste de "programme"
il te faut maintenant utiliser
foreach (programme ligne in liste)
puis utiliser les champs de la class "programme" pour remplir tes lignes de datadrig
dgvFormProgramme[0, i].Value =ligne.=>ici un champ de la classe programme<=