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 :

Command pour Checkbox dans ListBox


Sujet :

Windows Presentation Foundation

  1. #1
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut Command pour Checkbox dans ListBox
    Bonjour,

    je n'ai pas d'erreur, mais je ne passe pas dans l'évènement correspondant au check de ma listbox. Les données sont bien remplies (i.e. la case à cocher et le texte des textboxes sont bien remplis). Pouvez-vous m'indiquer ce qu'il manque à mon code pour fonctionner, s'il-vous-plait ?

    Voici un extrait de ma View :
    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
     
    <UserControl.Resources>
            <DataTemplate x:Key="RoleListBoxItemTemplate" >
                <WrapPanel>
                    <CheckBox Focusable="False" 
                              IsChecked="{Binding IsSelected, Mode=TwoWay}" 
                    Command="{Binding CheckAccesRoleForADGroupsCommand}"/>
     
                    <ContentPresenter Content="{Binding LabelADGroup, Mode=OneTime}"  Margin="2,0" />
                </WrapPanel>
     
            </DataTemplate>
        </UserControl.Resources>
     
    <!-- ... -->
     
            <Grid>
                <ListBox ItemsSource="{Binding AccesRoleForADGroups}"
                         ItemTemplate="{StaticResource RoleListBoxItemTemplate}"/>
            </Grid>
    et un extrait du 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
            private RelayCommand _checkAccesRoleForADGroupsCommand;
            public ICommand CheckAccesRoleForADGroupsCommand
            {
                get
                {
                    if (_checkAccesRoleForADGroupsCommand == null)
                    {
                        _checkAccesRoleForADGroupsCommand = new RelayCommand(param => this.CheckAccesRoleForADGroups());
                    }
                    return _checkAccesRoleForADGroupsCommand;
                }
            }
     
            private void CheckAccesRoleForADGroups()
            {
                int i = 1;
                //TODO : enregistrer
            }
     
            private ObservableCollection<V_AccesRoleForADGroups> _accesRoleForADGroups;
     
            public ObservableCollection<V_AccesRoleForADGroups> AccesRoleForADGroups
            {
                get 
                {
                    return _accesRoleForADGroups; 
                }
                set
                {
                    _accesRoleForADGroups = value;
                }
            }
    Bonne journée !

  2. #2
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    Vu que tu es Bindé sur "IsSelected" pourquoi tu ne le fais pas au set de cette propriété ?
    " Je préfère comprendre les gens qui ne me comprennent pas "

  3. #3
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    Bonjour,

    Je suppose, parce que le "IsSelected" n'est pas une propriété de mon ViewModel mais que l'objet V_AccesRoleForADGroups est une classe du modèle généré par Entity Framework... Et que la ListBox me sert à afficher une liste de AccesRoleForADGroups... Je devrais modifier le Model ?

  4. #4
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    Du coup, les deux ont le même context à priori
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <CheckBox Focusable="False" 
                              IsChecked="{Binding IsSelected, Mode=TwoWay}" 
                    Command="{Binding CheckAccesRoleForADGroupsCommand}"/>
    Donc il ne trouve peut être tout simplement pas ta command, tu as regarder dans la console de sortie si il n'y avait pas un message dans ce sens ?


    Sinon, tu peux essayer çà
    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
     
    <DataTemplate x:Key="RoleListBoxItemTemplate" >
                <WrapPanel>
                    <CheckBox Focusable="False" 
                              IsChecked="{Binding IsSelected, Mode=TwoWay}" >
                        <CheckBox.InputBindings>
                            <MouseBinding MouseAction="LeftClick" Command="{Binding CheckAccesRoleForADGroupsCommand}" />
                        </CheckBox.InputBindings>
     
     
                    </CheckBox>
     
     
                    <ContentPresenter Content="{Binding LabelADGroup, Mode=OneTime}"  Margin="2,0" />
                </WrapPanel>
     
     
            </DataTemplate>
    mais si ils sont bien sur le même contexte (ce que je pense) ca ne fonctuonnera pas non plus
    " Je préfère comprendre les gens qui ne me comprennent pas "

  5. #5
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    Pff suis fatigué moi !!
    Donc je pense que tu es sur le même context !
    Essaye de faire un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Binding Path=DataContex.CheckAccessRoleForADGroupsCommand,ElementName=truc
    Où truc est le nom d un element qui aurait comme DataContext l'object où se trouve ta command
    J'ai pas testé si ca marche
    " Je préfère comprendre les gens qui ne me comprennent pas "

  6. #6
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    Bonjour,

    merci pour l'aide apportée ! Cependant, je n'ai pas trouvé quoi mettre comme ElementName.

    J'ai par exemple donné un nom à ma ListBox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <ListBox x:Name="FonctionnalitiesListBox" ItemsSource="{Binding FonctionnalitiesForADGroups}"
                         ItemTemplate="{StaticResource FonctionnalitiesListBoxItemTemplate}"/>
    pour l'utiliser dans ma checkbox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                    <CheckBox IsChecked="{Binding IsSelected, Mode=TwoWay}" 
                    Command="{Binding Path=DataContex.CheckFonctionnalitiesForADGroups, ElementName="FonctionnalitiesListBox"}"/>
    Mais ça ne bind pas :
    System.Windows.Data Error: 40 : BindingExpression path error: 'DataContex' property not found on 'object' ''ListBox' (Name='FonctionnalitiesListBox')'. BindingExpression:Path=DataContex.CheckFonctionnalitiesForADGroups; DataItem='ListBox' (Name='FonctionnalitiesListBox'); target element is 'CheckBox' (Name=''); target property is 'Command' (type 'ICommand')
    Quel genre d'objet dois-je mettre ?

Discussions similaires

  1. Recherche multicolonnes pour intégration dans listbox
    Par thomas.c37 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/09/2013, 12h28
  2. Checkbox dans listbox
    Par eagl1 dans le forum Visual C++
    Réponses: 2
    Dernier message: 02/09/2009, 04h42
  3. [Checkbox dans ListBox] Récupérer la valeur des contrôles Checkbox
    Par Manson dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 25/05/2009, 10h10
  4. Réponses: 3
    Dernier message: 06/05/2008, 14h32
  5. [DOS] Commande pour écrire dans un fichier texte
    Par Jeff87-01 dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 28/03/2006, 01h04

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