dans un autre sujet, j'ai trébuché sur cette solution très élégante par Darin Dimitrov pour filtrer l'DataSource d'un ComboBox avec la sélection d'un autre ComboBox: how to filter combobox in combobox using c#L'utilisation de Linq pour filtrer un ComboBox.DataSource?
combo2.DataSource = ((IEnumerable<string>)c.DataSource)
.Where(x => x == (string)combo1.SelectedValue);
Je voudrais faire quelque chose de semblable, mais au lieu de filtrer par un second combobox, je voudrais filtrer par le texte d'un TextBox. (Fondamentalement, au lieu de choisir à partir d'un deuxième ComboBox, l'utilisateur entre simplement son filtre dans un TextBox). Cependant, il s'est avéré ne pas être aussi simple que je l'avais espéré. J'ai essayé des choses comme ce qui suit, mais a lamentablement échoué:
cbWohndresse.DataSource = ((IEnumerable<DataSet>)ds)
.Where(x => x.Tables["Adresse"].Select("AdrLabel LIKE '%TEST%'"));
cbWohndresse.DisplayMember = "Adresse.AdrLabel";
cbWohndresse.ValueMember = "Adresse.adress_id";
ds est le DataSet que je voudrais utiliser comme source de données filtrée. "Adresse" est l'un DataTable dans ce DataSet. Il contient un DataColumn "AdrLabel". Maintenant, je voudrais afficher seulement ces "AdrLabel", qui contiennent la chaîne de l'entrée de l'utilisateur. (Actuellement,% TEST% remplace le textbox.text.)
Le code ci-dessus échoue car l'expression lambda ne retourne pas Bool. Mais je suis sûr, il y a aussi d'autres problèmes (quel type devrais-je utiliser pour IEnumerable? Maintenant, c'est DataSet, mais Darin a utilisé String.) Comment puis-je convertir un DataSet en une chaîne
Oui, je suis autant newbyish comme ça, mon expérience est "vide", et publiquement ainsi, alors s'il vous plaît pardonnez-moi mes questions plutôt stupides
Votre aide est grandement appréciée, parce que je ne peux pas résoudre cela par moi-même (déjà essayé dur).
Merci beaucoup!
Pesche
P.S. J'utilise seulement Linq pour réaliser un filtre non compliqué pour le ComboBox (en évitant une vue). Le reste n'est pas basé sur Linq, mais sur oldstyle Ado.NET (ds est rempli par un SqlDataAdapter), si c'est important.
Merci beaucoup pour votre rediffusion ultra-rapide! Cela ressemble à une approche directe que je ne connaissais pas, avant! Aussi l'analyse du problème réel est très intéressante pour moi - puisque je suis un débutant et désireux d'apprendre :) –