Following on from my previous post about ' undo, redo, undo, redo ' I thought I would port this to WP7, I say port more a case of re-compile. What follows is an example of simple WP7 app using undo-redo functionality, whether this is any use for a real-world Wp& is up for debate. I pushed the code out to GitHub here , the only explicit changes required was a WP7 solution & project files. I also added support for INotifyPropertyChanged this allows the CanUndo & CanRedo properties to push out change notifications - this was done to allow the binding of the enable property of an input control (button). So now the undoable class looks like this; the same implementation for all .Net versions: public class Undoable : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged = delegate { } ; private readonly Stack < Memento > undoStack ; private readonly Stack < Memento > redoStack ; public Und