Diskuze: Undo/Redo - STACK
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Použij kolekci stack, co má v sobě c #. Stav komponent si ukládat celý do nějakýho jednoho modelu. Jedna jediná instance. Pro každé změně současný stav uloz na stack. Při tlačítku zpět pak jen výndas ze stacku předchozí stav a ten přiřadís do aktivního. Undo / redo je dokonce navrhovy vzor. Pomůže ti k tomu immutable state a nebo postsharp to má už v sobě
http://www.wpftutorial.net/UndoRedo.html
Tady je pěkně popsaný tutorial, jak na to.
Já to řeším stejně jako v tutorialu - mám dva stacky a každou UI
změnu ukládám do UndoStacku. Je to hromada práce "navíc", protože pro
každou změnu musíš implementovat i krok zpět, ale je to jednoduché a
čitelné.
Výhodu dvou stacků vidím v tom, že pak můžeš přeskakovat mezi Undo/Redo
a žádný ze stavů se Ti neztratí (pokud nepřekročíš nějaký sebou
nastavený limit).
EDIT:
http://www.codeproject.com/…on-in-C-Part
Ještě tady je skvělý tutorial i s kódem. Tohle bude pro Tebe možná
přijatelnější.
Okej, děkuju moc!
Zobrazeno 4 zpráv z 4.