Bonjour
J'ai un problème avec un DataGridView et une colonne de type Checkbox.
Je manipule un dataset contenant juste un DataTable (en mémoire, pas de lien avec bdd) et j'ai bindé cette table avec ma gridView jusque là tout va bien.
La plupart de mes champs ne sont pas éditables, sauf un seul, de type booléen, que j'ai bindé avec ma colonne Checkbox.
Le but pour moi est de faire une action sur les lignes de ma table qui sont cochées, et donc pour les récupérer je fais dans l'event click de mon bouton :
(Interessant étant le nom de ma colonne)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 private void toolStripButton1_Click(object sender, EventArgs e) { //get the list of doc checked DataRow[] rows = dataSetDocuments.Tables[0].Select("Interessant = true"); MessageBox.Show(rows.Length.ToString() + " lignes cochées"); }
Et ça marche nickel à un petit bémol prêt que je n'arrive pas à résoudre de manière élégante, c'est que l'état de la case à cocher d'une ligne n'est réellement répercutée sur mes données que lorsque le focus change de ligne.
Ex :
je coche 1 case, et clique directement sur mon bouton, il me dit 0 lignes cochés.
je sélectionne une autre ligne sans modifier d'autres case à coché, il me dit 1 ligne coché ce qui est le bon résultat.
J'aimerais si possible éviter d'avoir à mettre le focus ailleurs ou passer par l'event OnCellContentClick de la grid pour gérer un truc aussi basique.
Serais-je passer à côté d'une option toute simple de ma table ou de ma grid ?
Merci
Partager