What you need is a class that has events for any type of modification that occurs in the collection. The best class for this is BindingList. It has events for every type of mutation which you can then use to modify your event list.
- http://msdn.microsoft.com/en-us/library/ms132679.aspx