private static void Main() { var cls = new Class(); Cache = new ObservableCollection <Student>(cls); cls.CollectionChanged += ClassChanged; cls.Add(new Student()); cls.Add(new Student()); cls[0].Name = "Peter"; cls[1].Name = "John"; cls.Move(0, 1); cls.RemoveAt(1); Dump(cls); M.Changed += (_, args) => Console.WriteLine("Undo event: " + args.Event.GetType()); while (M.CanUndo) { M.Undo(); Dump(cls); } }
public void Should_undo_redo_property_change() { var c = new Circle(); for (int i = 0; i < 10; i++) { c.Radius = i + 1; UndoCount(i + 1).RedoCount(0); } for (int i = 9; i >= 0; i--) { m.Undo(); Assert.AreEqual(i, c.Radius); UndoCount(i).RedoCount(9 - i + 1); } for (int i = 0; i < 10; i++) { m.Redo(); Assert.AreEqual(i + 1, c.Radius); UndoCount(i + 1).RedoCount(9 - i); } }