Example #1
0
        private static void Main()
        {
            var screen = new Screen();
            for (int i = 0; i < 10; i++) {
                screen.Add(new Shape {Location = new Point(i, i), Color = Color.Red});
            }

            using (var tracker = new Tracker().Track(screen)) {
                tracker.Changed += _ => Console.WriteLine("Changed!");
                screen.Add(new Shape()); // "Changed!" x 2 (1 for new element, 1 for Count property change)
                screen[0].Location = new Point(1, 1); // "Changed!"
                screen[1].Color = Color.Blue; // "Changed!"
                screen.RemoveAt(2); // "Changed!" x 2
            }
        }