Skip to content
This repository has been archived by the owner on Aug 15, 2022. It is now read-only.

Undo Manager is a recorder of undo and redo operations for .NET with the goal to take full advantage of .NET 4.0 and C# 4.0 features (i.e. lambda expressions and dynamics). The Undo Manager API is very easy to use and does not require a deep understanding of the topic.

License

lehmamic/undo-manager

Repository files navigation

Build status NuGet version

This library is archived and not maintained anymore.

Project Description

Undo Manager is a recorder of undo and redo operations for .NET with the goal to take full advantage of .NET 4.0 and C# 4.0 features (i.e. lambda expressions and dynamics). The Undo Manager API is very easy to use and does not require a deep understanding of the topic.

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

this.Add("Monday");
this.Add("Wednesday");

UndoManager.DefaultUndoManager.Undo();

this.Add("Thuesday");

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.

About

Undo Manager is a recorder of undo and redo operations for .NET with the goal to take full advantage of .NET 4.0 and C# 4.0 features (i.e. lambda expressions and dynamics). The Undo Manager API is very easy to use and does not require a deep understanding of the topic.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages