Zeilen aus angebundenem DataGridView entfernen

16/06/2010 - 21:48 von Nico Wessels | Report spam
Hallo NG;

ich möchte einen Dialog mit zwei Listen realisieren. Über Buttons ">"
und "<" können die selektierten Werte aus Liste1 in Liste2 übernommen
werden.

-
| | | |
| | > | |
| | | |
| | < | |
| | | |
-


Als erste "Liste" habe ich ein DataGridView, an das die Werte angebunden
sind.

Frage 1:
==Ich habe die Werte, die in das DataGridView rein sollen bereits in Form
eine DataTable, die widerum woanders noch angunden ist, zur Verüfung.

Damit die aber über die BindingSource nicht irgendwie verbunden bleiben,
habe ich nach Übergabe der DataTable als Methoden-Parameter erst mal
eine Kopie der DataTable gemacht.

Ist dieses Vorgehen vertretbar, oder gibt es was eleganteres, um auf die
bereits vorhandenen Werte zuzugreifen, ohne aber eine Verbindung zur
bestehenden BindingSource/DataTable zu haben? Vertretbar frage ich
deshalb, da bei großen Tabellen sicherlich auch etwas
Performance-Einbußen in Kauf genommen werden müssen.



Frage 2 (wichtiger):
=Wenn man den Button ">" drückt, sollen ja alle selektierten Zeilen aus
dem DataGridView entfernt/ausgeblendet werden und in das DataGridView2
geschoben werden.

Wie entferne ich denn die selektierten Zeilen? Ich habe es mit Remove
auf den DataGridView.Rows versucht, aber da das Ding angebunden ist,
geht das nicht. Ausblenden scheint auch nicht zu funktionieren.
Irgendwann kam auch mal ein Fehler mit Bezug auf den ".. Wàhungsmanager
.." (was wohl eine lustige Übersetzung für den CurrencyManager sein soll).


Tja, jedenfalls ist die Frage, wie man die Werte selektierten Zeilen
löscht/ausblendet. Wenn man den "<" Button drückt, muss dann auch
dasselbe wieder von DataGridView2 aus gelöscht werden und zurück in das
DataGridView1.
 

Lesen sie die antworten

#1 Peter Fleischer
16/06/2010 - 23:44 | Warnen spam
"Nico Wessels" schrieb im Newsbeitrag
news:
...
Als erste "Liste" habe ich ein DataGridView, an das die Werte angebunden
sind.



Hi Nico,
für dein Szenario ist das keine gute Idee. Warum arbeitest du ungebunden?

Frage 1:
==> Ich habe die Werte, die in das DataGridView rein sollen bereits in Form
eine DataTable, die widerum woanders noch angunden ist, zur Verüfung.

Damit die aber über die BindingSource nicht irgendwie verbunden bleiben,
habe ich nach Übergabe der DataTable als Methoden-Parameter erst mal eine
Kopie der DataTable gemacht.



Warum das?

Ist dieses Vorgehen vertretbar, oder gibt es was eleganteres, um auf die
bereits vorhandenen Werte zuzugreifen, ohne aber eine Verbindung zur
bestehenden BindingSource/DataTable zu haben?



Die Frage sollte anders gestellt werden: Warum muss das so gemacht werden?

Vertretbar frage ich deshalb, da bei großen Tabellen sicherlich auch etwas
Performance-Einbußen in Kauf genommen werden müssen.



Bei großen Datenmengen, die bei Bedarf nachzuladen sind, sollte über den
virtuellen Modus nachgedacht werden.

Frage 2 (wichtiger):
=> Wenn man den Button ">" drückt, sollen ja alle selektierten Zeilen aus dem
DataGridView entfernt/ausgeblendet werden und in das DataGridView2
geschoben werden.



Im gebundenen oder virtuellen Modus ist das kein Problem: einfach die
Datenobjekte aus der Datenquelle entfernen.

Wie entferne ich denn die selektierten Zeilen? Ich habe es mit Remove auf
den DataGridView.Rows versucht, aber da das Ding angebunden ist, geht das
nicht.



Wo ist die Begründungen für den schwer hanhabbaren ungebundenen Modus. Beim
ungebundenen Modus wird implizit ein zweidimensionales String-Array
abgelegt. Eine typgerechte Arbeit ist da nicht problemlos möglich.

Ausblenden scheint auch nicht zu funktionieren. Irgendwann kam auch mal
ein Fehler mit Bezug auf den ".. Wàhungsmanager .." (was wohl eine lustige
Übersetzung für den CurrencyManager sein soll).



Mit dem CurrencyManager (Werteverwalter) ist es genau so wie mit der
Totenschau (Public Viewing) oder dem Cellphone (auf deutsch = Handy). Man
kann nicht alles irgendwie nach Gutdünken übersetzen.

Tja, jedenfalls ist die Frage, wie man die Werte selektierten Zeilen
löscht/ausblendet. Wenn man den "<" Button drückt, muss dann auch dasselbe
wieder von DataGridView2 aus gelöscht werden und zurück in das
DataGridView1.



Arbeite gebunden!!! Wenn der gebundene Modus Deine Datenquellen stört
(weshalb auch immer), dann erzeuge Kopien oder besser noch gefilterte
Sichten für die Oberflàche.

Viele Gruesse

Peter

Ähnliche fragen