/ / Anzeigen der LINQ-Abfrage in einer DataGridView - c #, linq, datagridview

Anzeigen der LINQ-Abfrage in einer DataGridView - c #, linq, datagridview

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: Bildbeschreibung hier eingeben

Antworten:

0 für die Antwort № 1

Das 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).