Skip to content

List and ObservableCollection which support undo/redo.

NOTE

You can use both in the List and ObservableCollection.

WARNING

UndoRedoList and UndoRedoObservableCollection is not Available in .Net 4.0, .Net 4.5, .Net 4.5.1, .Net 4.5.2, .Net 4.6, .Net 4.6.1 and .Net 4.6.2

Example:

cs
UndoRedoObservableCollection<string> list = new UndoRedoObservableCollection<string>();
// OR
// UndoRedoList<string> list = new UndoRedoList<string>();
public MainWindow()
{
    InitializeComponent();
    list.Add("Hello");
    list.Add("Bye");

    // Result: Hello, Bye
}
private void AddToList_Click(object sender, RoutedEventArgs e)
{
    list.Add("Welcome");
    // Result: Hello, Bye, Welcome
}

private void Undo_Click(object sender, RoutedEventArgs e)
{
    list.Undo();
    // Result: Hello, Bye
}
private void Redo_Click(object sender, RoutedEventArgs e)
{
    list.Redo();
    // Result: Hello, Bye, Welcome
}

Released under the MIT License.