Combobox consommateurs de données sans interaction avec la source [Résolu]

BasicZx81 140 Messages postés samedi 5 mars 2011Date d'inscription 13 août 2013 Dernière intervention - 19 févr. 2012 à 12:25 - Dernière réponse : BasicZx81 140 Messages postés samedi 5 mars 2011Date d'inscription 13 août 2013 Dernière intervention
- 19 févr. 2012 à 20:18
Bonjour à tous,
J'ai pas trouvé mieux comme titre mais je vais expliqué plus précisément mon problème :
Je voudrais remplir la liste d'un combobox avec des données provenant d'une table ou d'un Bindingsource et cela en évitant d'avoir recours à la méthode "add" (Pourquoi ? parce que j'aimerais éviter de parcourir tous les enregistrements un par un alors que l'on pourrait le faire avec une simple liaison de données).
Pour cela j'ai lié mon combobox à mon Bindingsource comme ceci :

        ' Chargement du Combobox ListeProjets
        ComboBoxPROJETCOURANT.DisplayMember = ChampsProjets.NOMDUPROJET
        ComboBoxPROJETCOURANT.ValueMember = ChampsProjets.ID_PROJET ' (Permet de récupérer l'ID_PROJET associé au nom du Projet selectionné à l'aide de ComboBoxPROJETCOURANT.SelectedValue)
        ComboBoxPROJETCOURANT.DataSource = BindingSourceProjets
        ComboBoxPROJETCOURANT.DropDownStyle = ComboBoxStyle.DropDownList


Le remplissage de mon combobox s'effectue correctement et je peux récupérer les éléments selectionés mais le problème c'est que lorsque je selectionne un éléments du combobox cela modifie la position de ligne courante dans mon bindingsource. et inversement lorsque je me positionne sur une ligne de mon bindingsource cela modifie la selection de mon combobox. En gros je voudrais juste utiliser la liaison de donnée pour remplir mon combobox, c'est tout.
Comment peux t'on faire cela ?

J'ai une vague notion de Bindingcontext mais je ne connais pas assez pour savoir si c'est une piste à explorer pour répondre au problème.

Merci beaucoup si vous pouvez m'aider.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
BasicZx81 140 Messages postés samedi 5 mars 2011Date d'inscription 13 août 2013 Dernière intervention - 19 févr. 2012 à 20:18
3
Merci
J'ai trouvé :
Le BindingContext fonctionne mais il ne faut pas lier les contrôles que l'on veux rendre indépendant à un BindingSource et a fortiori au BindingSource principale du formulaire.
Il faut se lier directement au Dataset (je n'ai pas essayé avec une Datatable ou un Dataview).

Merci BasicZx81 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 121 internautes ce mois-ci

Commenter la réponse de BasicZx81
BasicZx81 140 Messages postés samedi 5 mars 2011Date d'inscription 13 août 2013 Dernière intervention - 19 févr. 2012 à 19:15
0
Merci
Bonjour, A priori c'est bien Bindingcontext qu'il faut utiliser mais ca ne marche pas (le combobox est toujours synchronisé avec la source).
J'ai mis mon combobox dans un groupbox en m'inspirant du code sur msdn :
http://msdn.microsoft.com/fr-fr/library/system.windows.forms.bindingcontext.bindingcontext.aspx

Ces 2 lignes ont été ajoutées au début du code de mon premier post.
        Dim Bc1 As New BindingContext
        GroupBox1.BindingContext = Bc1
        ComboBoxPROJETCOURANT.BindingContext = Bc1


Ça à l'air simple pourtant je ne vois pas du tout ou ça cloche ?

Merci de m'aider s'il vous plait.
Commenter la réponse de BasicZx81

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.