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 :

lier trois combobox à une seule liste de trois choix


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 67
    Par défaut lier trois combobox à une seule liste de trois choix
    Bonjour,

    j'ai une liste de trois choix:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List<string> choices= new List<string>{"USA", "France", "Italy"}
    je veux lier mes troix combobox à cette liste, et chaque fois l'utilisateur fait son choix les deux autre combobox se mettent à jour automatiquement avec les valeurs restantes, j'ai procédé avec un switch sur selected item de premier combo pour remplir les deux autres:
    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
     
    private void firstChoiceSelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                string fChoice = (string)firstChoice_Cb.SelectedItem;
                switch (fChoice)
                {
                    case "Italy":
                        secondChoice_Cb.DataContext = new List<string> { "USA", "France" };
                        break;
                    case "France":
                        secondChoice_Cb.DataContext = new List<string> { "USA", "Italy" };
                        break;
                    case "USA":
                        secondChoice_Cb.DataContext = new List<string> {"Italy", "France"};
                        break;
                    default:
                        break;
                }
            }
    et je veux une fois le deuxième choix est fait, le troisième combobox prend la valeur restante des trois valeurs,

    est-ce que il y a une autre façon de faire???

    binding les trois combobox à une observableCollection<string> ??

    Merci d'avance

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 57
    Par défaut
    et je veux une fois le deuxième choix est fait, le troisième combobox prend la valeur restante des trois valeurs,
    As-tu vraiment besoin d'une combo box avec une unique valeur.

    Sinon, je stockerai une liste dans chaque combo box
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    comboBox1.ItemsSource = new List<string>();
    comboBox2.ItemsSource = new List<string>();
    comboBox3.ItemsSource = new List<string>();
    Puis lorsque qu'un choix est fait, je le retire des deux autres listes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private void firstChoiceSelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        string fChoice = (string)comboBox1.SelectedItem;
        var list2 = (List<string>)comboBox2.ItemsSource;
        var list3 = (List<string>)comboBox3.ItemsSource;
        list2.remove(fChoise);
        list3.remove(fChoise);
    }
    Bon après, si tu n'es pas une logique de cascade, il faut aussi rajoute une liste des combo box pour élimer celles qui ont une valeur.

    Si les choix ne sont pas fixes, alors il faut en plus initialiser les listes à chaque appel, et retirer les valeurs depuis une autre liste de combo box qui contient les combo box sélectionnées.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 67
    Par défaut
    merci

    ça marche, j'ai utilisé une
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ObservableCollection<string>
    pour stocker ma liste, et après j'ai fait comme tu as dit

    cdlt

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/12/2012, 09h56
  2. Réponses: 5
    Dernier message: 18/12/2008, 10h12
  3. Réponses: 8
    Dernier message: 06/07/2008, 11h44
  4. Deux tables et une seul liste
    Par cap38 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/05/2007, 14h51

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