![]() |
Datagridview: dynamisches Databinding
Hi Leute,
Hab folgendes Problem. Ich habe 2 Klassen A und B. Beide Klassen haben einen gemeinsamen Vorfahr 'V'. A hat andere Eigenschaften als B. Nun habe ich eine Liste, die Objekte vom Typ "V" (oder Kindklassen) aufnehmen kann. In diese Liste will ich nun nur Objekte vom Typ "A" oder nur vom Typ "B" stopfen. Für die Listen will ich ein (1) DataGridView verwenden und eine BindingDataSource. Auf Knopfdruck soll das GridView entweder die Liste L[A] mit allen Eigenschaften, oder L[B] mit den Eigenschaften anzeigen. Lange Rede, kurzer Sinn: Ich kriegs nicht hin.
Code:
Mir ist schon klar, das die Bindingsource den Datentyp der Liste nimmt und anhand des dort definierten Typs die Spalten erzeugt und das Databinding vornimmt.
private List<Basis> lst = new List<Basis>();
private void button1_Click(object sender, EventArgs e) { lst.Clear(); lst.Add(new C2("A", "C")); bindingSource1.DataSource = lst; } private void button2_Click(object sender, EventArgs e) { lst.Clear(); lst.Add(new C1("A", "B")); bindingSource1.DataSource = lst; } public class Basis { public Basis() { } public Basis(string s) { A = s; } public string A {get;set;} } public class C1 : Basis { public C1(string a, string b) { A = a; B = b; } public string B { get; set; } } public class C2 : Basis { public C2(string a, string c) { A = a; C = c; } public string C { get; set; } } Aber selbst wenn ich die Spalten per Hand erzeuge ("DataPropertyName" auf "A", "B" bzw. "C") setze, bekomme ich es so nicht hin. Gibt es nicht ne Möglichkeit, das hinzubiegen? |
AW: Datagridview: dynamisches Databinding
Versuchs mal mit 'ArrayList' statt der typisierten 'List<T>'.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz