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 :

Comportement ComboBox


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Par défaut Comportement ComboBox
    Bonjour tous le monde,

    Je rencontre un petit problème au niveau de mon développement en WPF.
    Si quelqu'un aurait une petite idée

    Voici le contexte

    J'ai une combobox avec un binding qui fonctionne correctement.
    Dans cette combobox j'ai une liste de valeurs par défaut que l'ont peut choisir en cliquant dessus.
    J'ai mis cette combobox en IsEditable pour que l'utilisateur puisse choisir ses propres valeurs aussi.

    Tout ça fonctionne, mais le truc c'est que a cause du propertyChanged la combobox se rafraîchit constamment des qu'on tape dedans.

    Est-il possible de gérer la combobox avec deux events ? Comme la touche entrer et le clique normale de la combobox.

    J'ai essayé le LostFocus mais c'est pas pratique

    Merci

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Par défaut
    Merci

    J'avais déjà jeté un coup d'oeil dessus.
    Mais ca ne marche pas. Car par exemple si je met un :
    UpdateSourceTrigger="Explicit" en attendant la touche entrer, cela bloque le propertychanged du clique sur la combobox.

    En faite il me faudrait le propertychanged quand je clique et dès que j'edit en cliquant sur la zone de texte, il faudrait que cela bloque le propertychanged et attendent uniquement la touche entrer (passer en mode explicit)

  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,

    Pourrais tu mettre un bout de code pour tenter de te répondre? Cela aiderait bien je pense...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 8
    Par défaut
    En effet ça sera surement plus simple.
    Désolé pour le laps de temps. J'étais malade :s

    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
    <TextBlock Margin="0,5,5,0"
                                       Grid.Column="0"
                                       Grid.Row="2"
                                       x:Name="m_LabelFrameRate"
                                       TextWrapping="Wrap" />
                            <ComboBox Margin="0,5,0,0"
                                      Grid.Column="1"
                                      Grid.Row="2"
                                      x:Name="m_FrameRate"
                                      ItemsSource="{Binding Path=FramesRate}"
                                      Text="{Binding Path=FrameRate}"
                                      IsSynchronizedWithCurrentItem="True"
                                      HorizontalAlignment="Stretch"
                                      IsEditable="True" IsReadOnly="False"
                                      IsEnabled="{Binding Path=Status, Converter={StaticResource FalseIfRecordingConverter}}">
                            </ComboBox>

    Framesrate c'est une observable collection de type double
    FrameRate c'est un double

    Voila mon code xaml.
    La combobox hérite d'un control template.

    Avec ce code ça fonctionne bien pour une utilisation normale de la combobox.
    J'aimerai que la touche entrer soit attendu que quand j’édite la combobox.
    Car la avec le binding en twoway ça rafraîchit tout le temps la commande.
    Sans utiliser un bouton.

    Je sais pas si je suis très clair

  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
    Si j'ai bien compris tu veux que l'utilisateur puisse rentrer un texte et ainsi l'ajouter aux valeurs par défaut qu'affiche la combobox ? (je déduis cela de ce que tu dis car tu parles de commande que je ne vois pas dans ton code...)
    Dans ce cas le "problème" de rafraîchissement vient du fait que ton binding est par défaut en mode "UpdateSourceTrigger=PropertyChanged" (et non un problème de TwoWay). Pour changer ça, il suffit de le mettre en "UpdateSourceTrigger=LostFocus".
    En espérant que cela t'aide.

Discussions similaires

  1. [WD18] Comportement combobox en selection
    Par Fred 57220 dans le forum WinDev
    Réponses: 9
    Dernier message: 11/05/2013, 08h16
  2. Réponses: 15
    Dernier message: 09/11/2012, 11h52
  3. Comportement combobox effarant !
    Par zax-tfh dans le forum Windows Forms
    Réponses: 12
    Dernier message: 30/03/2009, 17h32
  4. ComboBox.DropDownCount, comportement différent entre 2000 et XP
    Par Jipété dans le forum Composants VCL
    Réponses: 4
    Dernier message: 10/11/2007, 18h32
  5. [VB.NET] Datagrid comportant des combobox
    Par smedini dans le forum Windows Forms
    Réponses: 1
    Dernier message: 18/01/2006, 10h02

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