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 :

Transférer un checkbox d'un stack panel vers un autre


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de jubourbon
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 540
    Par défaut Transférer un checkbox d'un stack panel vers un autre
    Bonjour,

    Je développe une interface avec 2 listes de checkbox contenues dans des stackpanels
    Un bouton permet de faire passer le checkbox d'un stack à l'autre.
    Quand je fais ca l'erreur suivant m'est retournée:
    L'élément spécifié est déjà l'enfant logique d'un autre élément. Déconnectez-le d'abord.
    Voici mon code:
    WPF
    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
    15
    16
    17
    18
    19
     
    <ScrollViewer>
                                <StackPanel Name="spUserAjout">
     
                                </StackPanel>
                            </ScrollViewer>
                        </GroupBox>
                        <Grid Name="lesBoutons" Grid.Column="1" VerticalAlignment="Center">
                            <StackPanel>
                                <Button Content="->" Name="btnAjoutMembre" Click="btnAjoutMembre_Click"></Button>
                                <Button Content="&lt;-" Name="btnSupprMembre" Click="btnSupprMembre_Click"></Button>
                            </StackPanel>
                        </Grid>
                        <GroupBox Header="Membres du groupe" Grid.Column="2">
                            <ScrollViewer >
                                <StackPanel Name="spUserMembre">
     
                                </StackPanel>
                            </ScrollViewer>

    Code C#
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     private void btnAjoutMembre_Click(object sender, RoutedEventArgs e)
            {
                foreach (CheckBox unUser in spUserAjout.Children)
                {
                    if (unUser.isChecked)
                    {
                        spUserMembre.Children.Add(unUser);
                    }
                }
    }

    La méthode n'est peut être pas la bonne pour faire cela, je suis preneur de toute proposition pour optimiser ou améliorer le code.

    Merci pour votre aide.

  2. #2
    Membre éclairé
    Inscrit en
    Mai 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 72
    Par défaut
    Bonjour,

    Je n'ai jamais utilisé les StackPanel,

    Mais peut être qu'il faut d'abord "Remove" le checkbox de son contrôle avant de l'ajouter dans le second contrôle ?

    Bonne journée.

  3. #3
    Membre éclairé Avatar de jubourbon
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 540
    Par défaut
    si je le remove c'est le foreach qui plante car la collection a changé

  4. #4
    Membre éclairé
    Inscrit en
    Mai 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 72
    Par défaut
    Evidement ^^

    Essaye en utilisant un While

    Mais il faudra peut être que tu clone l'objet en cours dans un objet temporaire, et ajouter à la seconde liste l'objet temporaire.

  5. #5
    Membre très actif
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 250
    Par défaut
    Salut,
    mets toutes les checkboxs dans une list ou un array.
    Pour chaque CB à supprimer : Supprime de la liste 1 lorsque liste1.contains(CBaSupprimer).
    Et ajoute tes CB dans l'autre stackpanel après.

  6. #6
    Membre éclairé Avatar de jubourbon
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 540
    Par défaut
    Julien_G ça marche.

    Merci pour votre aide.

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

Discussions similaires

  1. [XL-2003] Bouton pour transférer des données d'un fichier Excel vers un autre
    Par Alfred23 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 07/09/2011, 16h46
  2. Transférer une procédure stockée d'une base vers une autre
    Par Delphi-ne dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 06/05/2008, 15h54
  3. Transférer un noeud d'un objet DomDocument vers un autre
    Par Delphi-ne dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 22/05/2007, 17h22
  4. transférer le disque dur d'une machine vers une autre
    Par julien.63 dans le forum Debian
    Réponses: 2
    Dernier message: 16/03/2007, 14h39
  5. Réponses: 4
    Dernier message: 19/12/2005, 11h31

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