Même source de données mais 2 tris différents pour 2 affichages

benji2000 Messages postés 78 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 25 novembre 2016 - Modifié par Whismeril le 25/06/2015 à 12:13
benji2000 Messages postés 78 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 25 novembre 2016 - 26 juin 2015 à 11:52
Bonjour,

J'ai une base de données de contacts chargé dans un BindingSource (Le DataSource de cet objet est un DataTable)

J'ai un DataGridView où apparaît les donnés trié par Prénom
Mais j'ai aussi un Combobox où doivent apparaître le Nom des contacts MAIS trié ici par Nom et non par Prénom.

L'objectif est que si je sélectionne mon contact d'un coté, il faut que de l'autre coté le même contact soit sélectionné.

Dim Binding As New BindingSource
Binding.DataSource = MonDataTable
Binding.Sort = "Prénom"
DGV.DataSource = Binding
CB.DataSource = Binding


L'ennuis est qu'il n'existe qu'un seul tri en commun pour ces 2 objets qui est celui du Binding.

Je veux juste savoir si un simple paramètre existe où si je dois développer quelque chose par moi même pour résoudre mon soucis.

D'avance merci.

EDIT: Ajout de la coloration syntaxique.

[ DOVAX]

2 réponses

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
25 juin 2015 à 21:20
Bonsoir, un truc me chiffonne dans ton code (auquel j'ai rajouté de la couleur!), il n'y a normalement pas de constructeur sans arguments pour Binding.

0
benji2000 Messages postés 78 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 25 novembre 2016
Modifié par Whismeril le 26/06/2015 à 10:14
Merci pour ta réponse Whismeril,

Je viens de vérifier à nouveau mais si, il existe bien un constructeur sans argument pour le BindingSource.

- BindingSource()
Initialise une nouvelle instance de la classe BindingSource aux valeurs par défaut des propriétés.
- BindingSource(IContainer)
Initialise une nouvelle instance de la classe BindingSource et ajoute BindingSource au conteneur spécifié.
- BindingSource(Object, String)
Initialise une nouvelle instance de la classe BindingSource avec la source de données et la donnée membre spécifiées.

source : https://msdn.microsoft.com/fr-fr/library/system.windows.forms.bindingsource(v=vs.110).aspx

Le nom de ma variable t'a peut-être induit en erreur, désolé.

Je réécris le code initial :
Dim BS As New BindingSource
BS.DataSource = MonDataTable
BS.Sort = "Prénom"
DGV.DataSource = BS
BS.Sort = "Nom"
CB.DataSource = BS
'En retriant sur les Nom pour le ComboBox,
' le DataGridView s'est lui aussi retrié ce que je ne veut pas !


Edit: Précision du langage dans la coloration syntaxique.


[ DOVAX]
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
26 juin 2015 à 10:20
Autant pour moi, j'ai tapé trop vite en faisant mon test.
Je n'ai pas trouvé de solution, juste un contournement. Tu fais deux bindingsource, et dans l'évenement CurrentItemChanged de l'un tu le dit à l'autre. C'est pas top.
0
benji2000 Messages postés 78 Date d'inscription samedi 26 août 2006 Statut Membre Dernière intervention 25 novembre 2016
26 juin 2015 à 11:52
C'est bien ce qu'il me semblait, mais je me disait çà c'est de la bidouille et il y a surement une fonction toute faites, dommage que Microsoft n'ai pas pensé à ce système qui me parait pourtant courant !

Merci en tout cas pour ton aide =]
0
Rejoignez-nous