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 :

Deux combobox dans un window


Sujet :

Windows Presentation Foundation

  1. #1
    Membre actif Avatar de lucienkany
    Profil pro
    Développeur
    Inscrit en
    Janvier 2004
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2004
    Messages : 257
    Points : 220
    Points
    220
    Par défaut Deux combobox dans un window
    Bonjour à tous.

    Dans un projet WPF, j'ai deux combobox dans un fichier xaml.

    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    <ComboBox  x:Name="cmbEleve" IsEditable="True"  SelectionChanged="cmbEleve_SelectionChanged" ItemsSource="{Binding}" SelectedValuePath="ID" DisplayMemberPath="NOM_ELEVE"  Grid.Column="1" Padding="2" Margin="0 5"/>

    et

    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
     <ComboBox  x:Name="cmbImputation" IsEditable="True" SelectionChanged="cmbImputation_SelectionChanged" ItemsSource="{Binding}" SelectedValuePath="ID" DisplayMemberPath="NOM_IMPUTATION"  Grid.Column="2" Padding="2" Margin="0 5"/>

    et voici le code

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    namespace WpfApp1.Frais
    {
        /// <summary>
        /// Interaction logic for FraisScolaires.xaml
        /// </summary>
        public partial class FraisScolaires : Window
        {
            public FraisScolaires()
            {
                InitializeComponent();
                bindEleve();
                bindImputation();
     
            }
     
            /// <summary>
            /// Avec Entity Framwork
            /// </summary>
            A001Entities em = new A001Entities();
     
            /// <summary>
            /// Liste des élèves
            /// </summary>
            public List<ELEVE> El { get; set; }
     
     
     
            private void bindEleve()
            {
                ///throw new NotImplementedException();
                var Elitem = em.ELEVE.ToList();
                El = Elitem;
                DataContext = El;
     
            }
     
            /// <summary>
            /// Liste des imputations
            /// </summary>
            public List<IMPUTATION> Imp { get; set; }
            private void bindImputation()
            {
                ///throw new NotImplementedException();
                var item = em.IMPUTATION.ToList();
                Imp = item;
                DataContext = Imp;
            }
     
     
            private void cmbEleve_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                var Elitem = cmbEleve.SelectedItem as ELEVE;
            }
     
            private void cmbImputation_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                var item = cmbImputation.SelectedItem as IMPUTATION;
            }
        }
    }
    Voici le problème.

    J'ai d'abord testé le cmbEleve et il a fonctionné mais lorsque j'ai ajouté le cmbImputation, ce dernier fonctionne bien mais la liste des élèves reste vide.

    Je ne peux faire fonctionner qu'un seul combobox sur les deux.

    Pouvez-vous m'aider à les faire fonctionner en même temps.

    D'avance merci.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 206
    Points : 192
    Points
    192
    Par défaut
    Bonjour,

    Tu ne peux pas utiliser le DataContext pour tes 2 collections.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     private void bindEleve()
    {
        ...
        DataContext = El;
    }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void bindImputation()
    {
        ....
       DataContext = Imp;
    }
    et

    Il faut que tu implémentes INotifyPropertyChanged et que tu utilises les méthodes créées de l'interface dans les propriétés El et Imp.
    Ne pas oublié dans ton constructeur (par exemple) que le DataContext soit "lui-même"
    et que tes combo soient bindées sur les propriétés El et Imp.
    Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
    <ComboBox  x:Name="cmbEleve" ItemsSource="{Binding Path=El}" ...

    Si t'as des questions, n'hésite pas.

    Bonne journée.
    "La Bretagne, ça vous gagne !!!"

Discussions similaires

  1. deux combobox dans une même form VB.NET ACCESS
    Par saadoun dans le forum VB.NET
    Réponses: 7
    Dernier message: 15/07/2015, 10h07
  2. Afficher deux champs dans un comboBox
    Par Blito dans le forum VB.NET
    Réponses: 3
    Dernier message: 21/02/2011, 17h32
  3. Lien entre deux colonnes dans une liste (utilisation de combobox)
    Par cantanna1988 dans le forum SharePoint
    Réponses: 7
    Dernier message: 02/03/2009, 17h10
  4. Compiler informations de deux combobox dans une textbox
    Par thiephaine59000 dans le forum Général VBA
    Réponses: 1
    Dernier message: 14/05/2007, 17h58
  5. [c#] PDA mettre deux valeur dans le Displaymember du combobox
    Par FunkyB dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/04/2006, 13h57

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