Laden...

Erweiterte ListView

Erstellt von Fabian vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.791 Views
Fabian Themenstarter:in
1.985 Beiträge seit 2004
vor 18 Jahren
Erweiterte ListView

Hallo Forum,

ich erstelle mir gerade eine erweiterte ListView, die es ermöglichen soll, die Spaltensortierung zu speichern und die bei STRG + F (zum Beispiel) eine Form mit den n ersten Spalten zum Suchen anzuzeigen.

Jetzt frage ich mich grad, wie ich das Speichern und Suchen am besten realisiere. Im Moment tendiere ich zu der Variante, dass beim Speichern ein Event geworfen wird, dass als Sender die ListView und eigene EventArgs mit den benötigten Daten enthält.

Der jenige, der die ListView dann in seiner Form verwendet, kann dann entscheiden, was er wie und wo speichert.

Zum Laden wird der ListView dann per Property eine Klasse übergeben, die, gezwungen durch ein Interface, bestimmte Methoden implementieren muss, aus denen die ListView dann die Daten enthält. Diese Variante finde ich eigentlich ganz gut.

Bei dem Suchen bin ich mir nicht so sicher, ob ich das per Event machen soll. Nach dem Schließen der "Such-Form" ist es natürlich auch möglich, ein Event auszulösen und per EventArgs die Felder zu übergeben, in denen gesucht werden soll. Dann kann der Programmierer mit diesen Informationen in seiner Datenquelle suchen und die neue Collection ans DataBinding übergeben.

Ob das so sinnvoll ist, bin ich mir allerdings nicht so sicher und hoffe auf ein paar Tipps und Tricks, wie ich vielleicht besser vorgehen sollte.

Gruß,
Fabian

"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)

Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…

Blog: www.fabiandeitelhoff.de

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Fabian,

da das Speichern ja vom benutzer des ListViews ausgelöst werden muss, wird die Speicherroutine nichts weiter machen, als den Event auszulösen und als Parameter (EventArgs) die zu speichernden Daten übergeben. Das kann man aber im Effekt auch einfacher haben, wenn die Methode die das "Speichern" auslöst, dem Aufrufer einfach die zu speichernden Daten als Rückgabewert zurückgibt.

Also Parameter/Rückgabewert würde ich das Memento-Pattern oder schlicht ein byte-Array benutzen.

Beim Suchen frage ich mich, was dein Listview überhaupt für eine Unterstützung anbietet. Das Suchformular definiert der Benutzer des Listviews und suchen soll er auch selbst. Wozu braucht er dann noch einen Event vom ListView?

herbivore

Fabian Themenstarter:in
1.985 Beiträge seit 2004
vor 18 Jahren

Hallo herbivore,

danke für Deine Antwort.

Das mit Suche hatte ich mir auch überlegt. Eigentlich hatte ich es so vor, dass ein automatisch generiertes Form erscheint, dass die n ersten Spalten anzeigt. Allerdings hat das den großen Nachteil, dass der Benutzer des ListViews bei der kleinsten Anpassung dieses Forms ein neues erstellen müsste.

Ich denke, ich lasse das mit der Suche komplett raus und lasse das den Benutzer selber machen.

Kannst Du mir bzgl. dem Speichern nähere Informationen zum Memento-Pattern geben? Bin ich jetzt neugierig drauf geworden.

Danke und Gruß,
Fabian

"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)

Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…

Blog: www.fabiandeitelhoff.de

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Fabian,

Kannst Du mir bzgl. dem Speichern nähere Informationen zum Memento-Pattern geben? Bin ich jetzt neugierig drauf geworden.

Klar! google: "design pattern" Memento

herbivore

1.271 Beiträge seit 2005
vor 18 Jahren

Hallo Fabian,

Design Patterns
Den Link hat gestern, glaub ich, norman_timo irgendwo gepostet. Da stehen die meisten Patterns sehr ausführlich beschreiben, auch das Memento-Pattern.

Gruß,
progger

A wise man can learn more from a foolish question than a fool can learn from a wise answer!
Bruce Lee

Populanten von Domizilen mit fragiler, transparenter Außenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
Wer im Glashaus sitzt, sollte nicht mit Steinen werfen.

Fabian Themenstarter:in
1.985 Beiträge seit 2004
vor 18 Jahren

Hallo zusammen,

danke für den Link. Werde ich mir mal ansehen.

Gruß,
Fabian

"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)

Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…

Blog: www.fabiandeitelhoff.de