IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

[Checkbox dans ListBox] Récupérer la valeur des contrôles Checkbox


Sujet :

Windows Presentation Foundation

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Par défaut [Checkbox dans ListBox] Récupérer la valeur des contrôles Checkbox
    Bonjour à tous,

    J'ai créé une ListBox contenant des Checkbox de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <ListBox Margin="0,192,105,49" Name="lbUserRoles" HorizontalAlignment="Right" Width="216">
                <ListBox.ItemTemplate>
                    <HierarchicalDataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <CheckBox>
                                <TextBlock Text="{Binding Path=Nom}"/>
                            </CheckBox>
                        </StackPanel>
                    </HierarchicalDataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
    Au chargement, ma ListBox est alimentée par une collection d'objets "Role" ayant une propriété "Nom".

    La liste affiche bien une liste de noms de Role précédés d'une checkbox.

    J'aimerais pouvoir dans mon code C# récupérer les Roles dont la checkbox est cochée.
    J'ai cherché du côté du VisualTreeHelper mais je n'arrive à rien de concluant.

    Merci d'avance pour le coup de pouce :-)

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 562
    Par défaut
    voici ce que j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
               CheckBox o = FindVisualChild<CheckBox>(cbi) as CheckBox;
     
      private QueryType FindVisualChild<QueryType>(DependencyObject obj)
                where QueryType : DependencyObject
            {
                for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
                {
                    DependencyObject child = VisualTreeHelper.GetChild(obj, i);
                    if (child != null && child is QueryType)
                        return (QueryType)child;
                    else
                    {
                        QueryType childOfChild = FindVisualChild<QueryType>(child);
                        if (childOfChild != null)
                            return childOfChild;
                    }
                }
                return null;
            }

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 57
    Par défaut
    Merci pour votre aide, j'ai donc résolu la chose en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
       for (int i = 0 ; i< lbUserRoles.Items.Count ; i++)
                    {
                        ListBoxItem item = lbUserRoles.ItemContainerGenerator.ContainerFromIndex(i) as ListBoxItem;
     
                        if (item != null)
                        {
                            CheckBox myCheckBox = FindVisualChild<CheckBox>(item) as CheckBox;
     
                            if (myCheckBox.IsChecked.Value)
                            {
                                userRoles.Insert(i, lbUserRoles.Items[i] as RoleApplicatifInfo);
                            }
                        }
                    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer la valeur d'un checkbox dans le contrôleur
    Par momedalhouma dans le forum Spring
    Réponses: 1
    Dernier message: 04/06/2013, 20h35
  2. Récupérer la valeur d'une Checkbox dans une ListView
    Par LHsafae dans le forum Développement Mobile en Java
    Réponses: 1
    Dernier message: 21/02/2013, 13h14
  3. récupérer les valeurs d'un checkbox dans une liste
    Par ikouhan dans le forum Struts 1
    Réponses: 19
    Dernier message: 31/08/2010, 14h22
  4. Réponses: 3
    Dernier message: 26/11/2009, 13h34
  5. Réponses: 5
    Dernier message: 18/02/2008, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo