Partage
  • Partager sur Facebook
  • Partager sur Twitter

WPF - Liste des checkbox cochées

    14 septembre 2017 à 13:28:44

    Bonjour

    Je souhaite obtenir une liste des Checkbox cochées dans ma Form, malheureusement je n'y arrive pas.

    J'ai lu plusieurs solutions mais rien à faire :

    https://stackoverflow.com/questions/782980/whats-the-simplest-way-to-bind-a-list-of-checkboxes-to-a-list-of-checked-values

    https://stackoverflow.com/questions/28457497/wpf-behaviour-to-check-uncheck-a-checkbox-in-a-list-item

    https://stackoverflow.com/questions/34051731/getting-the-content-of-a-checkbox-within-and-items-collection-within-a-listbox-w

    J'ai fait le code

     public Thingy[] Thingies { get; private set; }
    
            public class Thingy : INotifyPropertyChanged
            {
                public string Name { get; set; }
    
                public bool IsChecked
                {
                    get
                    {
                        return _isChecked;
                    }
                    set
                    {
                        if (_isChecked != value)
                        {
                            _isChecked = value;
                            if (PropertyChanged != null)
                            {
                                PropertyChanged(this,
                                    new PropertyChangedEventArgs("IsChecked"));
                            }
                            Console.WriteLine(Name + " = " + _isChecked);
                        }
                    }
                }
                bool _isChecked;
    
                public event PropertyChangedEventHandler PropertyChanged;
            }
    <CheckBox Name="cbxLignes" Tag="{Binding strIDLigne}" Style="{StaticResource {x:Type ToggleButton}}" Content="{Binding strCodeLigne}" FontSize="22" Margin="25,15,25,15" Width="100" Height="45"  IsChecked="{Binding IsChecked}" />



    Pour tester mais ça ne fonctionne pas, pourquoi ? Si j'ouvre un projet neuf ça fonctionne. De plus cette méthode ne me fait pas de liste avec tous les éléments cochées ! Moi j'aimerais obtenir dans ma liste tous les strIDLigne cochées (propriété tag de ma CheckBox)


    Merci.

    • Partager sur Facebook
    • Partager sur Twitter
      14 septembre 2017 à 14:15:13

      Tu n'as peut-être pas bien compris les liens.

      D'abord, la propriété Tag sert seulement à stocker une information en rapport avec l'élément. Dans ton problème précédent c'était utile pour identifier l'objet concerné mais là je ne vois pas d'utilité.

      Ensuite, je ne comprends pas bien ce que tu as fait. Quelle est la liste que tu veux afficher ? que représente strIDLigne ?...

      • Partager sur Facebook
      • Partager sur Twitter
        14 septembre 2017 à 14:20:16

        Salut

        J'ai réussi comme ceci :

         private void cbxLignes_Checked(object sender, RoutedEventArgs e)
                {
                    lstSelectedLignes.Add((sender as CheckBox).Tag.ToString());
                }
        
                private void cbxLignes_Unchecked(object sender, RoutedEventArgs e)
                {
                    lstSelectedLignes.Remove((sender as CheckBox).Tag.ToString());
                }



        • Partager sur Facebook
        • Partager sur Twitter
          14 septembre 2017 à 14:54:11

          Ça a l'air d'être du bricolage, il devrait y avoir moyen de faire plus simple.

          Par exemple, pour avoir la liste des checkbox cochés, il suffit de faire quelque chose de ce genre :

          Thingies.Where(th => th.IsChecked)

          INotifyPropertyChanged se charge de mettre à jour les propriétés IsChecked donc il ne devrait pas y avoir besoin d'utiliser les événements Checked et Unchecked.

          • Partager sur Facebook
          • Partager sur Twitter
            14 septembre 2017 à 15:32:22

            Salut Stit84

            je veux bien essayer ta solution mais comme décris en haut impossible de la mettre en place :(

            • Partager sur Facebook
            • Partager sur Twitter

            WPF - Liste des checkbox cochées

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown