ComboBox, data source

Souliabdo Messages postés 186 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 11 avril 2011 - 5 juin 2009 à 09:51
Zaltez Messages postés 48 Date d'inscription mardi 23 novembre 2004 Statut Membre Dernière intervention 20 décembre 2009 - 18 oct. 2009 à 20:36
Bonjour,



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




Je développe une application en c#.



 




J’ai deux combo box qui ont la même data source (une liste d’objets : List<Classe>),  le problème ce que quand je choisi un élément dans l’un il me propose le même dans l’autre, ce qui fait que je ne peux pas choisir 2 élément différent dans les 2 combo,



 




Est-ce que je dois faire deux requêtes différentes est associer le résultat de chacune à un combo ?





j'ai mis




La propriété Autocompletemode en suggestAppend et AutoComplete source en ListItems et DropDownStyle en DropDown


  


Merci pour votre aide    

5 réponses

ed73 Messages postés 276 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 avril 2013 2
5 juin 2009 à 11:09
Bonjour,

J'ai eu le même problème avec un TableAdapter et je l'ai résolu de la manière suivante :
- Définir 2 BindingSource avec DataSource le DataSet contenant le TableAdapter et DataMember le TableAdapter (en l'occurence une requête SQL)
- Définir le DataSource de la 1ère ComboBox le 1er BindingSource et le DataSource de la 2ème ComboBox le 2ème BindingSource.

Je ne sais pas si ça peut marcher avec des List mais c'est peut-être une piste à creuser.

ed73
0
Souliabdo Messages postés 186 Date d'inscription mercredi 14 mars 2007 Statut Membre Dernière intervention 11 avril 2011 2
10 juin 2009 à 14:32
Salut!

J’ai plusier data grid dans mon formulaire

J’ai créé une databindingsource pour chaque datagrid :
  for (int i 0; i < LstParam.Count; i++)<?xml:namespace prefix o ns = "urn:schemas-microsoft-com:office:office" /??>

            {

                DataTable dt2 = newDataTable(i.ToString());

                DataColumn code_rais = newDataColumn("Code Raison", typeof(string));

                code_rais.ReadOnly = true;

                DataColumn libelle = newDataColumn("Description", typeof(string));

                libelle.ReadOnly = true;

                DataColumn asuppr = newDataColumn("Asuppr", typeof(bool));

                asuppr.ReadOnly = false;

                dt2.Columns.Add(code_rais);//Col 1

                dt2.Columns.Add(libelle);//Col 2

                dt2.Columns.Add(asuppr);

                MyDataSetGrid.Tables.Add(dt2);

            }

///////////////////////////////////////////////////////////////////

j=-1;
for (int i 1; i < MyflpGrids.Controls.Count; i i + 2)

            {

               

                BindingSource source = newBindingSource();

                source.DataSource = MyDataSetGrid;

                source.DataMember =(j + 1).ToString();//(j + 1).ToString();

                ((DataGridView)MyflpGrids.Controls[i]).DataSource=source;

            }

 

 

mais le problème existe toujours quand je rajoute des ligne dans l’une il sera rajouter dans l’autre malgré due leur datasource son Différente

 

Une idée s’il vous plaît ???
0
Whismeril Messages postés 19027 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 avril 2024 656
16 oct. 2009 à 21:02
Bonsoir, j'ai le même probléme avec deux combobox dont les datasources sont implémentés par la même liste d'objets.

Avez-vous trouvé la solution?


J'ai un autre soucis récurrent, lors que je mets à jour ma liste le combobos reste à l'état initial.
J'ai essayé:

moncombo.refresh

puis

moncombo.datasource = maliste
moncombo.refresh

là rien ne se passse.

et enfin

moncombo.items.clear
moncombo.datasource = maliste
moncombo.refresh

et là, l'erreur "impossible d'effacer les items d'un combo dont le datasource est défini."

Y'a-t-il un moyen de rafraichir le combo ou d'annuler la définition du datasource pour la remettre ensuite?

Merci
Whismeril
0
Whismeril Messages postés 19027 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 24 avril 2024 656
18 oct. 2009 à 14:33
J'ai trouvé,

concernant les deux combobox avec la même liste en datasource:

Combo1.DataSource = _MaListe;
Combo2.DataSource = _MaListe.ToArray();

et pour réinitialiser le datasource aprés mise a jour de la liste

Combo1.DataSource = null;
Combo1.DataSource = _MaListe;


Whismeril
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zaltez Messages postés 48 Date d'inscription mardi 23 novembre 2004 Statut Membre Dernière intervention 20 décembre 2009 1
18 oct. 2009 à 20:36
Salut

Il me semble que pour résoudre ce problème il suffirait de cloner (Clone()) ou Copier la DataSource (Copy()) le DataSource et le tour est jouer
0
Rejoignez-nous