Autor Beitrag
maxx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 70



BeitragVerfasst: Fr 16.04.10 22:39 
hello,

Ich habe ein UserControl mit einem DataGridView.
Im UserControl gibt es eine Methode, der eine BindingList übergeben wird.
Diese Methode füllt dann das DataGridView mit dieser BindingList.

Leider muss man beim DataGridView immer einen Typ mit angeben.
Versucht man so etwas zu machen:
BindingList<object>
zeigt das DataGridView nur noch leere Zellen an.

Kann mir wer weiterhelfen? Wie kann man einer Methode eine BindingList übergeben, ohne einen Datentyp mit anzugeben und dass die Daten dann trotzdem noch im DataGridView angezeigt werden?

EDIT: muss ich alle BindingList auf DataTable umstellen?
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Sa 17.04.10 11:02 
Hallo,

user profile iconmaxx hat folgendes geschrieben Zum zitierten Posting springen:
EDIT: muss ich alle BindingList auf DataTable umstellen?

Keinesfalls. Das ist ja der Sinn einer BindingList, dass auch andere Datentypen als DataTable verwendet werden können.

user profile iconmaxx hat folgendes geschrieben Zum zitierten Posting springen:
Leider muss man beim DataGridView immer einen Typ mit angeben.
Versucht man so etwas zu machen:

Das gilt für alle generischen Typen und hat nichts mit dem DGV zu tun. Schon der Compiler will wissen, welche Typen als <T> vorkommen können und tatsächlich auftreten. (Beim DGV siehst du nur die Auswirkung: Object bietet keine Eigenschaften, die als Spalten angezeigt werden können.)

Da ich nicht weiß, wie du die Zusammenarbeit zwischen UserControl und der tatsächlich vorhandenen Liste steuerst, kann ich nur einen allgemeinen Hinweis geben: Setze in der Methode des UserControl als Argument nicht BindingList ein (in welcher Form auch immer), sondern IBindingList. Dann kannst du beim Aufruf jedes Objekt, das IBindingList implementiert hat, übergeben.

Gruß Jürgen