Demonstrating BindingList Serialization Bug
Friday, July 20th, 2007Okay, 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.