Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }