Comment manipuler une Liste remplie par une requete Linq

noelchulu - 27 mars 2014 à 14:58
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 - 27 mars 2014 à 19:58
Bonjour,
Je fais une requête Linq pour remplir un combobox. Mais j'ai des difficultés pour manipuler la liste au niveau DisplayMember et ValueMember. Ceci s'explique parce que l'Item est une ligne et les deux champs vont s'afficher dans le Combobox. Avec ce code j'ai un message d'erreur, donc ca ne marche pas. Comment faire de sorte que je puis récuperer le DisplayMember et le ValueMember séparément?
Dans le cas contraire le mieux serait que j'utilise carrément la méthode Toarray; comment faire pour manipuler le résultat dans le Combobox?
Si je peux avoir une assistance. Merci d'avance.

Dim db_Regroupement = (From Regroupement In Tresore.Tab_Regroupement _
Where Regroupement.Code_Operation = "D" _
Select Regroupement.Libelle_Code, Regroupement.Code_Regroupement).ToList
Me.ComboBox1.DataSource = db_Regroupement
Me.ComboBox1.DisplayMember = db_Regroupement.Item(0).ToString
Me.ComboBox1.ValueMember = db_Regroupement.Item(1).ToString

1 réponse

Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
27 mars 2014 à 19:58
Bonsoir,
Pour te répondre je me base sur ma connaissance de linq en c#, il te faudra l'adapter à VB.

Ici
Select Regroupement.Libelle_Code, Regroupement.Code_Regroupement).ToList

Tu crées une liste dont le type est créé dynamiquement.

Donc plus loin il n'est pas forcément évident de définir le DisplayMenber et le ValueMember.

Il serait plus judicieux d'écrire une classe métier dédiée pour avoir un truc dans ce style:

Select new MaClasse (libelle = Regroupement.Libelle_Code, code = Regroupement.Code_Regroupement).ToList
Combobox1.displaymember = "libelle"
Combobo1.valuemember = "code"


0
Rejoignez-nous