public EventListener(ListWithChangedEvent list)
 {
     List = list;
     // Add "ListChanged" to the Changed event on "List":
     List.Changed += new EventHandler(ListChanged);
 }
 public void Detach()
 {
     // Detach the event and delete the list:
     List.Changed -= new EventHandler(ListChanged);
     List = null;
 }
        // Test the ListWithChangedEvent class:
        public static void Main()
        {
            // Create a new list:
            ListWithChangedEvent list = new ListWithChangedEvent();

            // Create a class that listens to the list's change event:
            EventListener listener = new EventListener(list);

            // Add and remove items from the list:
            list.Add("item 1");
            list.Clear();
            listener.Detach();
        }