[C#] Combobox & membre DataSource

Signaler
Messages postés
714
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
19 janvier 2017
-
Messages postés
714
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
19 janvier 2017
-
glop glop,

je viens de remplir ma combo comme ceci :

ArrayList Categories = localDb.GetCategories ();
m_comboBoxCategory.DataSource = Categories;
m_comboBoxCategory.SelectedIndex = m_comboBoxCategory.FindString ("Imprimantes");

Maintenant, sur un clic, j'ai besoin de la re-remplir :
ArrayList Models = MafonctionDe Remplissage ()
m_comboBoxCategory.DataSource = Models;

Models est non vide mais DataSource devient vide.
Une idée ?

11 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
mouaip... en général, je repasse par null avant de changer le binding...

donc :
m_comboBoxCategory.DataSource = null;
m_comboBoxCategory.DataSource = Models;

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
714
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
19 janvier 2017

bah ca marche pô :(
ma arraylist contient 1 element
et l'assignatin ne change rien
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
quand tu dis que ca ne marche pas... la combo est vide ?

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
lol... je viens de relire le message d'origine...

l'arraylist est déclarée dans la delegate _Click ou est-elle globale ?

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
687
Date d'inscription
lundi 10 janvier 2005
Statut
Membre
Dernière intervention
27 août 2014
2
Salut,
si vraiment il faut
au lieu de lier directement ta combo a la datasource

tu fais deux procedures 
chacune disposant d'une boucle ajoutant chaque element a ta combobox et qui vide la combo dans un premier temps:

- 1 méthode pour lister les categories
- 1 methode pour lister les models

sinon c'est bizarre ca marche pas en faisant cela ?

comboBox1.DataSource = ds.DATABLE;
comboBox1.DisplayMember =

"NOM_COLONNE";

(sans mm ajouter m_comboBoxCategory.DataSource = null;)

++
Messages postés
714
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
19 janvier 2017

L'arrayList est déclarée en local tout comme les 2 assignations.
Et pour vérifier que le problème ne viennent pas du GC, j'ai tracé au débuggueur et suis donc resté dans ma fonction locale.

----------------------------
C++ forever
C# amateur
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
ok...

je sais que ca ne répond pas à ton problème... mais si tu ajoutes une seconde combobox et que tu lui assignes l'arraylist en datasource... est-ce que ca marche ?

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
714
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
19 janvier 2017

ahah, pas con l'idée.
Et bien oui avec une autre combo ca marche.
donc en résumé vos 2 méthodes sont bonnes mais pas dans ma combo....
En fait c'est l'affection de ma DataSource qui reste vierge malgré le fait que les objets à affecter soit non nuls
Messages postés
714
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
19 janvier 2017

Tiens maintenant je me prend une exception (sur ma combo qui marche pas) :
Additional information: DataBinding complexe accepte IList ou IListSource comme source de données

donc visiblement le binding n'est pas bon dans cet objet

----------------------------
C++ forever
C# amateur
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
???

C'est bien une arraylist que tu bind ?

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
714
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
19 janvier 2017

Pour le cas précédent, autant pour moi, erreur de copier/coller.
Au final, j'ai crée une combo à côté , viré l'ancienne, renommé la nouvelle avec le nom de l'ancienne et ca passe.
vive la bidouille.

----------------------------
C++ forever
C# amateur