ComboBox, data source

Signaler
Messages postés
186
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
11 avril 2011
-
Messages postés
48
Date d'inscription
mardi 23 novembre 2004
Statut
Membre
Dernière intervention
20 décembre 2009
-
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

Messages postés
276
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
15 avril 2013
2
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
Messages postés
186
Date d'inscription
mercredi 14 mars 2007
Statut
Membre
Dernière intervention
11 avril 2011
2
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 ???
Messages postés
15652
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 mars 2021
516
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
Messages postés
15652
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
5 mars 2021
516
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
Messages postés
48
Date d'inscription
mardi 23 novembre 2004
Statut
Membre
Dernière intervention
20 décembre 2009

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