Laden...

RowFilter mit eigenen Objekten in DataGridView im VirtualMode

Erstellt von oli001 vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.228 Views
O
oli001 Themenstarter:in
449 Beiträge seit 2005
vor 10 Jahren
RowFilter mit eigenen Objekten in DataGridView im VirtualMode

Hallo,
so fülle ich meine DatagridViw:


dataGridView1.VirtualMode = true;
dataGridView1.CellValueNeeded += new DataGridViewCellValueEventHandler(dataGridView1_CellValueNeeded);
dataGridView1.Rows.AddCopies(0, Table.DefaultView.Count);

Virtueller Modus unabdingbar, da sehr viele Datensätze

Die Table wird vorher natürlich mit Daten gefüllt. Eine Spalte bekommt den Typ eines von mir erstellten Objektes. Nun möchte ich auch nach diesem Objekt filtern.
Hier muss ich ja dem - Filtermechanismus des Views irgendwie sagen können, wann ein Objekt größer oder kleiner ist. Muss ich da eine bestimmte Methode in der Objektklasse implementieren oder muss ich meine Objektklasse von irgendetwas ableiten?

Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt..

Grüße Oli

Viele Grüße, Oli

F
10.010 Beiträge seit 2004
vor 10 Jahren

Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt..

Nein.

Wobei DataView == DataTable und die meisten die versuchen da in Spalten irgendwelche eigenen Objekte zu hosten haben meist irgendwas beim DataBinding falsch verstanden haben.

Erklär also mal genau was da an Vorgaben sind und warum du meinst das Du überhaupt so viele Reihen hast.

O
oli001 Themenstarter:in
449 Beiträge seit 2005
vor 10 Jahren

Hallo,

ja, ich möchte ein Objekt in eine Spalte hosten. Das Objekt soll nach einem bestimmten Kriterium gefilter werden können.
Ein String ist ja auch nichts anderes als ein Objekt. Und ein String muss doch irgendeine Methode (compare) haben, die dem Filter sagt ich bin größer, kleiner oder gleich einem andern String (Objekt)

Grüße Oli

Viele Grüße, Oli

F
10.010 Beiträge seit 2004
vor 10 Jahren

Bei compare bist du schon weit ( IComparable ), aber die "einfachen" filter in dem DataView können da eher Probleme machen.
Warum willst du sowas überhaupt machen ( die frage ist nicht ohne Grund gestellt ).

C
2.121 Beiträge seit 2010
vor 10 Jahren

Ich bin mir nicht sicher ob ein GridView im virtual Mode überhaupt filtern kann. In diesem Modus weiß das Grid nämlich nichts (bzw. nicht viel) über die angezeigten Daten.
ES fängt ja schon mit der Anzahl Zeilen an, die man selbst setzen muss. Evtl. musst du die Filterung selbst übernehmen und dem GridView dann nur die neuen Daten vorsetzen bzw. genauer gesagt, die Anzahl Zeilen anpassen und in CellValueNeeded auf die selbst gefilterte Datenmenge zugreifen.

F
10.010 Beiträge seit 2004
vor 10 Jahren

Das Grid fragt dich ja nach den Daten, also ist das recht einfach.
Man gibt ihm die gefilterten Daten.

Und nach dem Suchaufruf übergibt man dem Grid die Anzahl, ist also alles möglich.