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 Combobox Listview


Sujet :

Windows Presentation Foundation

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 192
    Points : 86
    Points
    86
    Par défaut Binding Combobox Listview
    Bonjour

    J'ai une combobox que je rempli via un objectDataProvider (odpUgmUsers).
    Lors de la sélection d'une valeur, j'utilise l'événement "selectionChanged" pour remplir une listBox via un autre objectDataProvider (odpUgmUserGroups).

    - Lorsque je sélectionne une première fois un élément dans la combobox, ma listbox se rempli bien avec les valeurs retournée par odpUgmUserGroups .
    Mais lorsque je sélectionne un second item de la combobox, plus rien ne se passe.

    voicis mon code
    Merci pour votre aide

    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
     
     <UserControl.Resources>
            <ObjectDataProvider x:Key="odpUgmUsers"
                        ObjectType="{x:Type local:GbbUserProvider}" />
            <ObjectDataProvider x:Key="odpUgmUserGroups"
                        ObjectType="{x:Type local:GbbUserProvider}" />
        </UserControl.Resources>
     
    <ComboBox 
                      Focusable="true" Height="23" Margin="0,65.013,0,0"
                      Name="cbListLeft" VerticalAlignment="Top" 
                IsEditable="True"
                IsReadOnly="False"
                IsTextSearchEnabled="True"
                      DataContext="{Binding Source={StaticResource odpUgmUsers}}" ItemsSource="{Binding}"
                      SelectionChanged="cbListLeft_SelectionChanged">
     
                <!--DataContext="{Binding Source={StaticResource odpGbbUser}}" ItemsSource="{Binding}"  TextBoxBase.TextChanged="cbListLeft_TextChangedEventArgs" SelectedValue="">-->
     
                <ComboBox.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Cn}" />
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>
     
     
    <ListBox Margin="0,129.948,0,26.656" Name="lbListLeft"
                     DataContext="{Binding Source={StaticResource odpUgmUserGroups}}" ItemsSource="{Binding}">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Cn}" />
        </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
    Code behind
    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
     
        public partial class UGMTab : UserControl
        {
            DirectoryEntry _deMainDirectoryEntry;
            DirectoryEntry _deGroupEntry;
            public UGMTab()
            {
                InitializeComponent();
                ObjectDataProvider odpGbbUser = FindResource("odpUgmUsers") as ObjectDataProvider;
     
                RemotingModule module = new RemotingModule(ADMFields.enuADMModule.Ugm, ADMFields.enuRthHubs.ParisHub);
                string _sMainDirectoryEntry = module.ModuleConfiguration["ADEntryDn"];
                _deMainDirectoryEntry = ADConnection.createDirectoryEntry("LDAP://"+_sMainDirectoryEntry);
     
                string _sGroupEntry = module.ModuleConfiguration["GroupEntry"];
                _deGroupEntry = ADConnection.createDirectoryEntry("LDAP://" + _sGroupEntry);
     
     
                odpGbbUser.MethodName = "GetUsers";
                odpGbbUser.MethodParameters.Add(_deMainDirectoryEntry);
            }
     
            //Lorsque l'on sélectionne un utilisateur dans la combobox, on rempli la listbox avec les groupes auquel il appartient
            private void cbListLeft_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                ADUser userRetreived = (ADUser)cbListLeft.SelectedItem;
                ObjectDataProvider odpUserGroup = FindResource("odpUgmUserGroups") as ObjectDataProvider;
     
    //Rappel la méthode pour récupérer les groupe de l'utilisateur choisi dans la combobox
                odpUserGroup.MethodName = "GetUserGroups";
                odpUserGroup.MethodParameters.Add(_deGroupEntry);
                odpUserGroup.MethodParameters.Add(userRetreived);
     
            }
             }
    Object Data provider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            //Methode to retreive a list of Users
            public static ObservableCollection<ADUserGroup> GetUserGroups(DirectoryEntry entry, ADUser us)
            {
                ObservableCollection<ADUserGroup> _results = new ObservableCollection<ADUserGroup>();
                foreach (ADUserGroup obj in us.getGroups(entry))
                {
                    _results.Add(obj);
                }
                return _results;
            }

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 192
    Points : 86
    Points
    86
    Par défaut
    c'est bon j'ai trouvé. Il fallait que je rajoute un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    odpUserGroup.MethodParameters.clear

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

Discussions similaires

  1. Binding ComboBox sur collection d'objet
    Par NejNej dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 04/12/2009, 16h42
  2. WPF + mdb >> binding combobox
    Par waspy59 dans le forum Windows Workflow Foundation
    Réponses: 0
    Dernier message: 27/10/2009, 00h31
  3. probleme binding combobox
    Par warmy dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 13/01/2009, 21h18
  4. Binding entre listview et combobox
    Par chris81 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 12/11/2008, 20h58
  5. VC# Express - Binding ComboBox
    Par Anified dans le forum C#
    Réponses: 11
    Dernier message: 11/10/2007, 16h45

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