This project has moved. For the latest updates, please go here.
Project Description
We moved...

Why another undo framework
Most undo frameworks uses so called actions or commands to describe the undo and redo actions, which forces you to adjust your architecture to use a 3rd party object structure. So far no problem, but in case you need to exchange this framework it is quite a bit work to rework these former used object structure.

Furthermore I found it not convenient to keep adding actions for every operation which supports the undo operations. I prefer a declarative way which is more easy to use.

Simple example



public void Add(string item)
    Console.WriteLine("Add {0}", item);
    UndoManager.DefaultUndoManager.RegisterInvocation(this, p => p.Remove(item)));

public void Remove(string item)
    Console.WriteLine("Remove {0}", item);
    UndoManager.DefaultUndoManager.RegisterInvocation(this, p => p.Add(item)));

See QuickStart for more examples.

Last edited May 24, 2011 at 7:36 AM by Enyra, version 6