Recuperation de l'id de datagrid

Fermé
Mimisam1980 - Modifié le 12 août 2021 à 15:21
Whismeril Messages postés 19145 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 29 septembre 2024 - 12 août 2021 à 15:42
Bonjour
je voudrai faire une suppression en sélectionnant un élément dans un datagrid ,j'ai fait ce bout de code mais j'ai une erreur:
System.NullReferenceException : 'La référence d'objet n'est pas définie à une instance d'un objet.'


erreur signaler dans cette ligne :


int empId =(dataGrid1.SelectedItem as Medcin).idMedcin;



voici mon code:




if (dataGrid1.SelectedIndex != -1)
{

int empId =(dataGrid1.SelectedItem as Medcin).idMedcin;
Medcin md = (from c in bdd.Medcins where c.idMedcin == empId select c).SingleOrDefault();
bdd.Medcins.Remove(md);
bdd.SaveChanges();
dataGrid1.ItemsSource = bdd.Medcins.ToList();

}

else
{
MessageBox.Show("Veuillez selectionner medicn à supprimer.", "Erreur", MessageBoxButton.OK, MessageBoxImage.Error);
}


quelqu'un peut m'aider .
merci

1 réponse

Whismeril Messages postés 19145 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 29 septembre 2024 919
12 août 2021 à 15:42
Bonjour

tu as essayé d'utiliser les balises de code, merci, mais comme tu peux le constater le résultat n'est pas terrible.
C'est parce que leur utilisation n'est pas ergonomique, ça faut juste des années qu'on le dit à CCM, mais voilà ils n'ont pas modifié le bouton.
Donc pour tes prochains posts, merci de lire ce petit tuto sur leur bonne utilisation https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code


Pour ton problème maintenant, c'est très bien d'avoir indiqué le message d'erreur, mais il aurait espionner le contenu des variables quand ça plante et nous le communiquer.

Sans ces éléments, je ne peux que spéculer.
  • La propriété idMedcin est semble t il du type int, donc ne peut pas être null.
  • dataGrid1.SelectedIndex != -1
    donc dataGrid1.SelectedItem n'est pas null non plus


Ce serait donc
(dataGrid1.SelectedItem as Medcin)
qui est null, ce qui voudrait dire que dataGrid1.SelectedItem n'est pas du type Medcin
0