Okay, so I blogged about how C#
BindingList<T> serialization is broken and how to fix it. The problem centers around filling a
BindingList subtype with items that implement
INotifyPropertyChanged. This enables your list to fire
ListChanged events indicating
ItemChanged whenever a property of a list item changes. Unfortunately, serializing and deserializing the list causes the
ItemChanged notification to stop firing unless you take steps to properly rebuild the list. This happens because C# event handlers aren’t serializable, and .NET fails to rewire the listeners.
A colleague of mine asked for a quick example to demonstrate the problem, so I whipped up this test case.