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 :

Binding Checkbox dans une ListView


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 133
    Par défaut Binding Checkbox dans une ListView
    Bonjour !

    J'ai vu que je n'étais pas le seul à poser la question, mais je préfère expliquer mon cas de figure dans un nouveau post.

    J'ai un ListView dont le DataTemplate possède une CheckBox et des TextBlocks.
    Tout s'affiche correctement, par le binding ne semble pas fonctionner...
    Ce qui m'interpelle, c'est qu'en posant des points d'arrêt sur la méthode IsSelected, je me rends compte que les get & set ne sont jamais appelés, mais si je sors la CheckBox du DataTemplate pour la mettre autre part dans le code, le binding passe bien.
    Est-ce normal ? Comment dois-je procéder alors ?

    Le XAML de la ListView :

    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
     
    <ListView Height="250" Width="450" ItemsSource="{Binding Conferences, Mode=TwoWay}">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                        <CheckBox Margin="0,0,5,0" IsChecked="{Binding IsSelected, Mode=TwoWay}"></CheckBox>
                        <TextBlock Text="{Binding id}" />
                        <TextBlock Text=" - " />
                        <TextBlock Text="{Binding titre}" />
                        <TextBlock Text=" - " />
                        <TextBlock Text="{Binding date}" />
                        </StackPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
    Le code de IsSelected dans mon ViewModel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    private bool _isSelected;
    // ...
    public bool IsSelected
            {
                get { return _isSelected; }
                set
                {
                    _isSelected = value;
                    OnPropertyChanged("IsSelected");
                    if (value != false)
                      // Instructions
                }
            }

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 537
    Par défaut
    Bonjour,

    Question : le ViewModel c'est celui de la listview ou celui des items de ta liste?

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 133
    Par défaut
    Citation Envoyé par NejNej Voir le message
    Bonjour,

    Question : le ViewModel c'est celui de la listview ou celui des items de ta liste?

    La partie de code de ViewModel que j'ai collé c'est celui qui est utilisé dans le binding de la CheckBox de la ListView, la méthode qui est est bindé à la propriété ItemsSource est appelée Conference.

  4. #4
    Membre éprouvé Avatar de titourock
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 156
    Par défaut
    Bonjour,

    Ta ListView est bindée sur Conference, ce qui fait que les enfants de ta ListView héritent de ce contexte. Ainsi, la propriété IsChecked est "recherchée" dans le contexte Conference et d'après ce que tu dis, il me semble qu'il n'y ait pas de tel attribut dans Conference.

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 133
    Par défaut
    Merci titourock, ça confirme ce que je pensais.
    Mais du coup, en MVVM, comment puis-je faire pour accéder au DataContext de la CheckBox ?

    Je devrais peut-être tout passer dans le XAML alors, parce que j'ai l'habitude de faire mes assignations de DataContext de la manière suivante en MVVM :

    dans le monTitreView.cs, après avoir rajouté le using adéquat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    monTitreViewModel = new monTitreViewModel();
    this.DataContext = monTitreViewModel;

  6. #6
    Membre éprouvé Avatar de titourock
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 156
    Par défaut
    Bonjour,

    Pourrais-tu donner le code de ton ViewModel ? Cela serait plus simple pour te répondre

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. [C#] Checkbox dans une Listview : Toujours à false
    Par DébutantPgm dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 24/05/2010, 23h57
  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