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 Forms Discussion :

[C# / .NET 2.0] Mettre à jour une comboBox lorsque datasource est modifié


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 20
    Points : 17
    Points
    17
    Par défaut [C# / .NET 2.0] Mettre à jour une comboBox lorsque datasource est modifié
    Bonjour,

    Voilà mon souci: j'ai une <list> qui contient des objets "onglet" dont je veux afficher la propriété "nom" comme texte dans une comboBox1 et je voudrais leur associer la propriété "id" (ne començant pas à 0 et non continu, cad à 3 peut succeder 5). J'ai donc utilisé comboBox1.datasource = maList, displaymember = "nom", valuemember = "id". Quand j'initialise ma form la combobox est remplie comme il faut pas de pb... là où ça se corse c'est lorsque je modifie "maList" ... la combo ne se met pas à jour, donc en désespoir de cause j'ai fait un "dispose()" de ma combo et je l'ai reconstruite à chaque modifications de "maList". Contrairement à ce que vous pourriez penser: ça marche ! lol Mais ! ... eh oui il y a un "mais": quand je fait une reconstruction et que dans "maList" les propriétés "id" ne suivent pas (1,2,4,5) j'ai droit à un:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "Une exception non gérée du type 'System.ArgumentOutOfRangeException' s'est produite dans System.Windows.Forms.dll
     
    Informations supplémentaires : InvalidArgument=La valeur '3' n'est pas valide pour 'SelectedIndex'."
    Cette erreur se produit lorsque j'appel "this.Controls.Add(this.comboBox1);"
    Une idée ?

    Ah et dernière chose que j'ai oublié de préciser: je n'arrive pas à mettre à jour en redéfinissant la propriété "datasource"...

    Merci d'avance à toutes vos propositions.

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 481
    Points : 616
    Points
    616
    Par défaut
    bonjour,
    Pourquoi tu n'utilises pas l'évenment de modification de ta liste (je pense que ca existe) pour rebinder ta combobox ?

    bon dev

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Non l'évènement est levé lorsque la propriété "datasource" est modifié, et pas quand l'objet qui est bindé change. En tout cas c'est ce que j'ai compris d'après la msdn et d'après mes essais.

    Une autre idée ?

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 20
    Points : 17
    Points
    17
    Par défaut Renversement de situation
    Après un coup de pouce donné par un autre forum, j'ai à peu près résolu mon problème ! Of course il y a un "mais" ... J'ai donc affecté la valeur "null" à datasource avant de lier à nouveau ma list une fois modifiée. (Je sais c'était très bête j'aurais pu y penser tout seul mais j'avais essayé d'affecter "" à datasource qui ne marchait pas et ça m'avait mis dans l'esprit que null aussi...) Il n'y a plus de problème lors de suppression et d'ajout d'élément dans la liste... en revanche la zone de saisie (la combo est en readonly) devient transparente !
    J'ai bien tenté refresh() et update(), sans succès.
    Une proposition ?

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2004
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 20
    Points : 17
    Points
    17
    Par défaut
    Pour la liaison entre la source donnée et la combobox c'est bon. Mais c'est un problème graphique maintenant qui vient m'embêter. Je vais marquer ce sujet comme résolu et en ouvrir un autre sur mon nouveau problème pour clarifer les choses.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Points : 7
    Points
    7
    Par défaut Rafraichir comboBox
    Bonjour,
    Meme si le sujet est ancien, je vous donne une solution simple car j'ai eu du mal a la trouver.
    Pour mettre à jour une comboBox, listBox... Suite à la modification de la DataSource on peut utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((CurrencyManager)comboBox.BindingContext[comboBox.DataSource]).Refresh();
    Bonne soirée,

    Guillaume

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

Discussions similaires

  1. Impossible de mettre à jour une combobox
    Par nislog dans le forum Visual Studio
    Réponses: 2
    Dernier message: 01/06/2011, 13h18
  2. Mettre à jour une combobox pendant un bind
    Par sovitec dans le forum Silverlight
    Réponses: 17
    Dernier message: 19/01/2011, 12h02
  3. Réponses: 4
    Dernier message: 26/01/2009, 14h56
  4. Mettre à jour DataGridView dont le DataSource est une relation.
    Par zizou2007 dans le forum Windows Forms
    Réponses: 26
    Dernier message: 24/05/2008, 20h35
  5. Mettre à jour une table depuis une autre
    Par rsc dans le forum SQL
    Réponses: 4
    Dernier message: 09/07/2004, 10h08

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