Simple .NET Undo/Redo framework with merging and transactions
C#
Latest commit 7b580d8 Nov 13, 2015 @KirillOsenkov Merge pull request #2 from mgnslndh/master
Test that CollectionChanged event is fired when actions are executed

README.md

Undo

This is a very simple framework to add Undo/Redo functionality to your .NET applications. Supports unlimited undo-redo, nested transactions and action merging (to merge a series of consecutive and/or nested actions into one).

NuGet:

http://nuget.org/packages/guilabs.undo

Sample:

var actionManager = new ActionManager();
var action1 = new CallMethodAction(
  () => sb.Append("execute1 "),
  () => sb.Append("unexecute1 "));
var action2 = new CallMethodAction(
  () => sb.Append("execute2 "),
  () => sb.Append("unexecute2 "));

actionManager.Execute(action1);
actionManager.Execute(action2);
actionManager.Undo();
actionManager.Redo();

Undo actions

Blog posts: