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 avec ComboBox


Sujet :

Windows Presentation Foundation

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 29
    Points : 24
    Points
    24
    Par défaut Binding avec ComboBox
    Bonjour,

    Désolé, je suis sur que vous avez déjà répondu des milliers des fois, mais impossible de trouver la solution a mon problème a priori très simple.

    J'ai une ComboBox binnder avec une liste, et je voudrais que par défaut la SelectedValue soit a null, or la cbo.text affiche tjrs le premier item de la list.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     cboStudio.DataContext = movieServices.getStudios();
     
     <ComboBox Name="cboStudio" Grid.Row="7" Grid.Column="1" Margin="0,3" IsEditable="True"
                      ItemsSource="{Binding}"
                      IsSynchronizedWithCurrentItem="True"
                      DisplayMemberPath="Name"/>
    Merci pour votre aide.

    Jeff

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 754
    Points
    39 754
    Par défaut
    Avec SelectedIndex = -1, ça devrait le faire

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Avec SelectedIndex = -1, ça devrait le faire
    Bonjour Thomas,

    Merci pour ta réponse, mais cela ne change rien.
    J'ai aussi essayé .Text=string.empty;

    Mais sans succés. On dirait que le xaml prend la main sur le code-behind.

    Jeff

  4. #4
    Membre expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Points : 3 568
    Points
    3 568
    Par défaut
    Bizarre, ca devrait marcher. Tu as bien mis la ligne après l'assigntion du DataContext?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Oui

    Voila le code complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     public void InitCombo()
            {
                for (long i = 0; i < 21; i++)
                {
                    cboRating.Items.Add(i);
                    cboSeason.Items.Add(i);
                }
                cboMedia.DataContext = mediaServices.gets();
                cboStudio.DataContext = movieServices.getStudios();
                cboStudio.SelectedIndex = -1;
     
            }

  6. #6
    Membre expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Points : 3 568
    Points
    3 568
    Par défaut
    Je crois que je vois.
    Au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cboStudio.DataContext = movieServices.getStudios();
    mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cboStudio.ItemsSource= movieServices.getStudios();
    Avec ItemSource c'est plus propre (a mon humble avis) et ça devrait marcher.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2009
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Super ça marche.

    Merci beaucoup. Par contre pouvez vous me dire pourquoi ? et pourquoi c'est plus propre ?

    Jeff

  8. #8
    Membre expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Points : 3 568
    Points
    3 568
    Par défaut
    En fait je ne suis pas sur, mais je pense que si on passe par le DataContext, il ne le fait pas directement. Donc il met bien le selectedindex à -1, puis il charge la liste du datacontext => il remet le selectedindex à 0.

    Je trouve que c'est plus propre avec ItemSource car c'est fait pour. Le DataContext, je l'utilise plutot pour d'autres proriétés propre à la grid (style Width,etc...).
    Bon ce n'est que mon avis qui n'engage que moi

Discussions similaires

  1. binding avec combobox ne marchant pas
    Par Invité dans le forum Silverlight
    Réponses: 3
    Dernier message: 02/01/2012, 09h43
  2. Bind un combobox avec un dictionnaire générique
    Par mbessega dans le forum VB.NET
    Réponses: 0
    Dernier message: 02/06/2010, 08h09
  3. Combobox constant binding avec un champ de db
    Par loulouklm dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 12/05/2009, 18h18
  4. [WPF] ComboBox, binding avec association LINQ
    Par tomlev dans le forum Windows Presentation Foundation
    Réponses: 11
    Dernier message: 30/04/2008, 00h30
  5. [VB6] [Interface] Grille avec combobox
    Par khany dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 15/01/2003, 09h55

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