j'essaie de boucler à travers les éléments d'une liste de cases à cocher. si elle est cochée, je veux définir 1 valeur. Sinon, je veux définir une autre valeur. J'utilisais ce qui suit mais cela ne me donne que des éléments cochés:
foreach (DataRowView myRow in clbIncludes.CheckedItems)
{
MarkVehicle(myRow);
}
TIA!
for (int i = 0; i < clbIncludes.Items.Count; i++)
if (clbIncludes.GetItemChecked(i))
// Do selected stuff
else
// Do unselected stuff
Si la vérification est dans un état indéterminé, cela restera vrai. Vous voudrez peut-être remplacer
if (clbIncludes.GetItemChecked(i))
avec
if (clbIncludes.GetItemCheckState(i) == CheckState.Checked)
si vous souhaitez inclure uniquement les éléments réellement cochés.
Cela donnera une liste des
List<ListItem> items = checkboxlist.Items.Cast<ListItem>().Where(n => n.Selected).ToList();
Cela donnera une liste des valeurs des cases sélectionnées (changez la valeur du texte si vous le souhaitez):
var values = checkboxlist.Items.Cast<ListItem>().Where(n => n.Selected).Select(n => n.Value ).ToList()
Essayez quelque chose comme ceci:
foreach (ListItem listItem in clbIncludes.Items)
{
if (listItem.Selected) {
//do some work
}
else {
//do something else
}
}
Je pense que la meilleure façon de le faire est d'utiliser CheckedItems
:
foreach (DataRowView objDataRowView in CheckBoxList.CheckedItems)
{
// use objDataRowView as you wish
}
vérifiez-le en utilisant une boucle pour chaque index dans comboxlist.Items[i]
bool CheckedOrUnchecked= comboxlist.CheckedItems.Contains(comboxlist.Items[0]);
Je pense que cela résout votre objectif
Utilisez la méthode GetItemChecked ou GetItemCheckState de CheckBoxList pour savoir si un élément est vérifié ou non par son index.