Obtenez de la valeur de DataGridViewCheckBoxCell

Je travaille sur un DataGridView appelé ListingGrid essayant d’activer / désactiver les utilisateurs qui ont été “contrôlés” sur un DataGridViewCheckBoxCell à l’intérieur du DataGridViewCheckBoxColumn .

Voici comment j’essaie de le faire:

 foreach (DataGridViewRow roow in ListingGrid.Rows) { if ((bool)roow.Cells[0].Value == true) { if (ListingGrid[3, roow.Index].Value.ToSsortingng() == "True") { aStudent = new Student(); aStudent.UserName = ListingGrid.Rows[roow.Index].Cells[2].Value.ToSsortingng(); aStudent.State = true; studentList.Add(aStudent); } } } 

Autant que je sache, lorsque vous vérifiez un DataGridViewCheckBoxCell , la valeur de la cellule est true n’est-ce pas? Mais cela ne me permet pas de convertir la valeur en bool, puis de la comparer, ce qui me jette une exception de dissortingbution invalide.

essayer:

 DataGridViewCheckBoxCell chkchecking = roow.Cells[0] as DataGridViewCheckBoxCell; if (Convert.ToBoolean(chkchecking.Value) == true) { } 

ou

 DataGridViewCheckBoxCell chkchecking = roow.Cells[0] as DataGridViewCheckBoxCell; if ((bool)chkchecking.Value == true) { } 

Je le fais habituellement comme ceci bool value = (short)chkchecking.Value == 1

Je pense que == true n’est pas utile et vous devez vérifier si votre cellule n’est pas DBNull :

 if (chkchecking.Value != DBNull.Value)