Sample C# WPF application with Undo/Redo