Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Multilevel-Undo/-Redo mit dem Command-Muster
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

Themenstarter:

Multilevel-Undo/-Redo mit dem Command-Muster

beantworten | zitieren | melden

Hallo Community,

moderne Anwendungen kommen heutzutage kaum noch ohne ein Multilevel-Undo/-Redo aus. Um dies in einer eigenen Anwendung zu realisieren, bietet sich das Command-Entwurfsmuster an. Nur hat man von Muster alleine noch nicht. Letztendlich braucht man Code. Und genau um diesen geht es in diesem Beitrag.

Ich habe das Command-Pattern aus dem GoF-Buch erweitert und in die Klassen Command/MacroCommand und CommmandList gegossen. Um die Ausführung der Commands standesgerecht anstoßen zu können, gibt es die Klassen CommandButton und CommandMenuItem.

Und damit das ganze keine Theorie bleibt, gibt es drei Beispiele für konkrete Command-Klassen (Add, Insert und Remove für eine ListBox) und ein fertiges Beispiel-Programm, das die Verwendung zeigt und mit dem man alles ausprobieren kann.

Also Krönung gibt es eine - wie ich denke - mehr als brauchbare Dokumentation. Deshalb mache ich es an dieser Stelle auch kurz: Ich habe einfach die Übersichtsbeschreibung der Command- und CommandList-Klasse als Auszug aus der Doku angehängt. In der Zip-Datei findet ihr den kompletten Sourcecode (der Einfachheit halber als eine große CS-Datei) und die komplette Dokumentation als CHM-Datei.

Viel Spaß und Erfolg damit!

herbivore

PS: Fehler und Ungereimtheiten sind natürlich nicht ausgeschlossen. Für entsprechende Hinweise bin ich dankbar.

PPS: ErfinderDesRades hat sich von meinen Klassen inspirieren lassen und bietet in Generische Klassen für Multilevel-Undo/-Redo seine Lösung an.

Schlagwörter: Undo, Redo, Command, Designpattern, Entwufsmuster, 1000 Worte
Attachments
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

Themenstarter:

beantworten | zitieren | melden

Übersicht Command-Klasse
Attachments
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

Themenstarter:

beantworten | zitieren | melden

Übersicht CommandList-Klasse
Attachments
private Nachricht | Beiträge des Benutzers
chrische5
myCSharp.de - Member



Dabei seit:
Beiträge: 503
Herkunft: Europa

beantworten | zitieren | melden

Hallo

Ich wollte nur mal melden, dass ich mich sehr gefreut habe hier diesen Code und vor allem die gute Dokumentation zu finden. Dies hat mir wirklich sehr geholfen eine solche Funktion für mein Programm umzusetzen.

chrische
private Nachricht | Beiträge des Benutzers