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 :

[C#] Checkbox dans une Listview : Toujours à false


Sujet :

Windows Presentation Foundation

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [C#] Checkbox dans une Listview : Toujours à false
    Bonsoir à tous,

    Je ne suis pas très habitué à l'utilisation du xaml. Et mon but est de d'utiliser une Listview contenant deux colonnes :
    - la première avec une checkbox que l'on peut cocher ou non.
    - la seconde avec une adresse.

    Si on coche une checkbox, on sélectionne l'adresse correspondante et on y envoie une trame à l'aide d'un bouton.

    Voici mon code en xaml :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <ListView  HorizontalAlignment="Left" Margin="19.089,46.359,0,64.539" Name="CLB_Adresse" Width="134.532" SelectionMode="Single" >
                                        <ListView.ItemTemplate>
                                            <DataTemplate>
                                                <Grid Margin="4">
                                                    <Grid.ColumnDefinitions>
                                                        <ColumnDefinition Width="Auto" SharedSizeGroup="Key" />
                                                        <ColumnDefinition Width="*" />
                                                    </Grid.ColumnDefinitions>
                                                    <Label Grid.Column="1" Content="{Binding Adresse }" />
                                                    <CheckBox IsChecked = "False" />
                                                </Grid>
                                            </DataTemplate>
                                        </ListView.ItemTemplate>
                                    </ListView>

    Et mon code en c# :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public class List_AdresseData
    {
        public Boolean IsChecked { get; set; }
        public string Adresse { get; set; }
    }
     
    private void BT_ValideData_Click(object sender, RoutedEventArgs e)
    {
        List_AdresseData AddrData = new List_AdresseData();
        AddrData = (List_AdresseData)CLB_Adresse.Items.GetItemAt(i);
        if (AddrData.IsChecked == true)
        {
             // Envoie d'une trame
        }
    }

    Mon problème est que AddrData.IsChecked est toujours à false, ça fait des jours que je cherche, après avoir beaucoup essayé pour résoudre ce problème, j'espère que je trouverai de l'aide par ici.
    Merci par avance.

  2. #2
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Comme çà je dirais que c'est normal puisque la CheckBox n'est pas bindée. Résultat IsChecked renverra toujours false, sauf si à la base la valeur était à true au niveau de l'objet. En tout cas la case à cocher ne modifiera pas cet état.

    Sinon plutôt que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    List_AdresseData AddrData = new List_AdresseData();
    AddrData = (List_AdresseData)CLB_Adresse.Items.GetItemAt(i);
    Il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List_AdresseData AddrData = (List_AdresseData)CLB_Adresse.Items.GetItemAt(i);

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Déjà merci pour ce premier conseil, que je vais suivre directement ! Ca fait toujours une ligne de moins. Vu que mon code commence à devenir imposant, c'est ça de pris.

    Par contre, comment faire pour bindée une checkbox ?

  4. #4
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Citation Envoyé par DébutantPgm
    Par contre, comment faire pour bindée une checkbox ?
    Je débute encore avec WPF, mais de la même façon que pour l'adresse je dirais
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <CheckBox IsChecked = "{Binding IsChecked}" />

  5. #5
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Oui c'est ce que j'avais essayé en fait. Au lieu d'attendre une réponse toute faite. Et ça fonctionne parfaitement comme ça.

    Merci beaucoup pour ces éclaircissements, qui me sont ô combien précieux, surtout que ça faisait un moment que je galérais à chercher partout, toutes les méthodes, évènements, etc...

    Merci à toi c'est vraiment sympa d'avoir répondu aussi vite, et juste. Bonne soirée. A bientôt (je pense ) !

  6. #6
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Et même, pour ton scénario :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <CheckBox IsChecked = "{Binding IsChecked,Mode=TwoWay}" />
    De plus, "List_AdresseData" ni n'implémente INotifyPropertyChanged, ni ne contient de propriété de dépendance, et donc ne peut à priori être utilisé dans un binding dynamique.

  7. #7
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Tout comme TextBox.Text, CheckBox.IsChecked est en mode TwoWay par défaut, j'ai vérifié. Par contre j'aimerais bien trouver une liste là dessus ^^

    DébutantPgm, n'oublie pas de cliquer sur le en bas à la fin

  8. #8
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Merci de ces précisions, c'est bon à savoir.

  9. #9
    Candidat au Club
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Très bon à savoir, des réponses précises et rapides.
    Vraiment un grand merci à vous.

    Résolu.

  10. #10
    Membre expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Points : 3 015
    Points
    3 015
    Par défaut
    Citation Envoyé par StormimOn
    Tout comme TextBox.Text, CheckBox.IsChecked est en mode TwoWay par défaut, j'ai vérifié. Par contre j'aimerais bien trouver une liste là dessus ^^
    Ça pourrait être sympa une liste en effet.

    Après l'idée est, je pense, de mettre le mode à chaque fois quand même (même si je ne le fais pas moi même tout le temps ) pour les raisons suivantes :
    • Niveau lisibilité la compréhension du contexte est instantanée
    • Point de vue maintenance, c'est un plus aussi (exemple d'un développeur qui reprend le code sans pour autant être au point sur WPF sera bien content... ou même moi quand j'aurai oublié les valeurs par défaut )
    • La liste serait bien mais nécessiterait quand même de faire le va et vient avec la liste

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

Discussions similaires

  1. Tester les checkBox dans une listview avecun SimpleCursorAdapter
    Par link953 dans le forum Composants graphiques
    Réponses: 4
    Dernier message: 10/02/2014, 01h05
  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. [AC-2007] Contrôle checkbox dans une listview
    Par facedeharicot dans le forum VBA Access
    Réponses: 2
    Dernier message: 25/07/2011, 10h46
  4. Binding Checkbox dans une ListView
    Par Ashura95 dans le forum Windows Presentation Foundation
    Réponses: 12
    Dernier message: 18/10/2010, 16h50
  5. Réponses: 3
    Dernier message: 23/04/2009, 00h56

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