mastereur
Messages postés37Date d'inscriptionjeudi 17 mai 2007StatutMembreDernière intervention26 décembre 2010
-
12 mai 2009 à 17:39
mastereur
Messages postés37Date d'inscriptionjeudi 17 mai 2007StatutMembreDernière intervention26 décembre 2010
-
13 mai 2009 à 12:43
Bonjour,
j'ai un souci d'accès aux items d'un group d'une listview.
En fait, je voudrais que si le 1° item du group n'est pas sélectionner (par la check box) que tous les autres items soient déselectionnés.
Seulement quand je tente d'accéder au premier item j'ai une exception sur l'index. qui me dit que je suis sur l'index -1 O_o
internal static void verifOption(ListViewXml liste)
{
int nbitem = liste.Items.Count;
foreach (ListViewGroup group in liste.Groups)
{
if (group.Header.ToLower().Contains("sectiongroup") ||
group.Header.ToLower().Contains("logger") ||
group.Header.ToLower().Contains("appender"))
{
if (!group.Items[0].Checked)
foreach (ListViewItem item in group.Items)
item.Checked = false;
}
}
}
mastereur
Messages postés37Date d'inscriptionjeudi 17 mai 2007StatutMembreDernière intervention26 décembre 2010 13 mai 2009 à 12:43
/// <summary>
/// On va regarder pour certain group si leur 1° option est décoché.
/// Si elle l'est, on décoche alors toute les autres automatiquement du même group.
/// </summary>
///
internal static void verifOption(ListViewXml liste)
{
int nbItemAvecGroup = 0;
int nbItemSansGroup = liste.Items.Count;
// on calcul le nombre d'item qui ne sont pas dans un group.
foreach (ListViewGroup group in liste.Groups)
nbItemSansGroup -= group.Items.Count;
for (int numgroup = 0; numgroup < liste.Groups.Count; numgroup++)
{
nbItemAvecGroup += liste.Groups[numgroup].Items.Count;
#region sectiongroup
/* On regarde pour chaque groups s'il est d'un certain type
* Ensuite on décoché les option si la 1° valeur est décoché
*/
if (liste.Groups[numgroup].Header.ToLower().Contains("sectiongroup") ||
liste.Groups[numgroup].Header.ToLower().Contains("logger") ||
liste.Groups[numgroup].Header.ToLower().Contains("appender"))
{
/* le calcul se fait grace le nombre total croissant d'item dans le group,
* le nombre d'item du group, et le npbre d'item qui ne sont pas présent dans aucun group
*/
if (!liste.Items[nbItemAvecGroup - liste.Groups[numgroup].Items.Count + nbItemSansGroup].Checked)
foreach (ListViewItem item in liste.Groups[numgroup].Items)
{
if (item.Index != -1)
item.Checked = false;
}
}
#endregion sectiongroup
}
}