Ich habe Probleme beim Anzeigen dieser LINQ-Abfrage in einem dataGridview:
var result = from myrow in MydataTable.AsEnumerable()
where liste.Any(x => myrow.Field<string>("ID").ToUpper().Contains(x.ToUpper()))
select myrow;
MyGrigdView.DataSource = result.Tolist();
Ausgabe:
Antworten:
0 für die Antwort № 1Das Problem ist, dass die Gridview irgendwie benötigt wirdZugriff auf die Informationen über die Spalten, um die Daten effektiv zu binden. Wenn es ein Objekt mit Eigenschaften für jede Spalte hat, kann es funktionieren, aber Sie haben das nicht. Wenn die gesamte Sammlung eine gegebene Schnittstelle implementiert, die erklärt, welche Spalten es gibt und wie man sie bekommt, dann kann es funktionieren. DataTable
implementiert eine solche Schnittstelle, IEnumerable<DataRow>
nicht. Die einfachste Option ist es, alle diese Zeilen wieder in a zu setzen DataTable
damit die Bindung funktionieren kann. Einfach ersetzen ToList
mit CopyToDataTable
(Möglicherweise müssen Sie ein relevantes hinzufügen using
).