Trouver datarow lié a datagridview

olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 - 8 mars 2008 à 08:21
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 - 8 mars 2008 à 12:02
Bonjour

Je n'ai toujours pas trouvé de methode simple pour acceder a un datarow lié a un datagridview

dgv.DataSource=ds.Tables[0];

Si je prends en row quelconque du datagridviewrow j'aimerais acceder directement au datarow lié de la datatable

J'ai cru naivement pouvoir faire

DataRow dr = (DataRow) dgv.Rows[n].DataBoundItem;

Mais ca marche pas

Donc actuellement je fais un loop dans la datatable pour retrouver un row basé sur un item clef de dgv mais ca me semble tres obsolete comme methode.
Ais-je loupé qq chose ?

2 réponses

cs_coq Messages postés 6350 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
8 mars 2008 à 10:33
Salut,

Bien entendu, quand lié à une source de données de type DataSet/DataTable, DataGridViewRow.DataBoundItem ne contient pas directement une instance de DataRow mais bel et bien une instance de DataRowView...

/*
coq
MVP Visual C#
CoqBlog
*/
0
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 6
8 mars 2008 à 12:02
Yep

Voila la solution !

      DataRowView drv = (DataRowView)dgv_addr.Rows[5].DataBoundItem;
      DataRow dr = drv.Row;

Mais j'ai encore un drole de bingz

1- Je remplis (par programmation) un cellulles du DGV avec une nouvelle valeur
2- La valeur se retrouve aussi dans le dr (ci dessus)

MAIS :
1- le dr state reste unchanged
2- Je force a modified

et HOP : il retrouve l'ancienne valeur ????
0
Rejoignez-nous