Ist es möglich, das binden eines array an DataGridView-Steuerelement?
Ich habe ein array, arrStudents, dass meine students' age, GPA, und Namen wie:
arrStudents[0].Age = "8"
arrStudents[0].GPA = "3.5"
arrStudents[0].Name = "Bob"
Habe ich versucht zu binden arrStudents zu einem DataGridView-wie so:
dataGridView1.DataSource = arrStudents;
Aber der Inhalt des Arrays NICHT zeigen, bis in der Steuerung. Bin ich etwas fehlt?
- Zusammen mit dem, was andere geschrieben haben, wäre ich geneigt, verwenden Sie eine
BindingList<T>
so dass änderungen an den zugrunde liegenden Daten sichtbar sein würde in derDataGridView
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als mit Adolfo, ich habe festgestellt, dass diese funktioniert. Es ist nichts falsch im code angezeigt, so muss das problem im code nicht angezeigt.
Meine Vermutung:
Age
etc sind nicht öffentliche Eigenschaften; entweder sind Sieinternal
oder Sie sind Felder, d.h.public int Age;
stattpublic int Age {get;set;}
.Hier ist dein code funktioniert für beide ein gut typisierte array und ein array von anonymen Typen:
arrStudents
, und was machtStudent
Aussehen ?.OrderBy(...)
oder ist es.OrderBy(...).ToArray()
?IList
API; ein array implementiertIList
; aber die Sache, die Sie erhalten vonOrderBy(...)
nicht implementierenIList
. So das ist der Grund, warum es nicht funktioniert. Also im Grunde, das eigentliche problem hier ist, dass Sie gelogen, über die Frage: du sagtest: "ich habe ein array, arrStudents", Sie zeigte, wiedataGridView1.DataSource = arrStudents;
- wenn eigentlich auch, dass nicht genau. Das auch funktioniert hätte. Wenn Sie gebeten hatte, die Frage genau, die Leute würden in der Lage gewesen, Sie zu beantworten, muss schnell und präzise.Diese funktioniert bei mir:
Oder weniger überflüssig:
Ich würde auch ein
List<Student>
anstelle von einem array, da wird es wachsen wahrscheinlich.Ist, Dass das, was du tust auch?