I wanted to use List<T> to expose a list of objects as a property on a Windows Forms control that I am building. One of the requirements is that when the composition of the list is changed the UI will immediately reflect the change. Unfortunately the List<T> type doesn't fire any events when items are added or removed.

My next thought was to override the various Add/Remove methods but unfortunately they aren't marked virtual which means I have to fall back on hiding the implementation in the base class. That works, but the draw back is that if one of my clients passes the list into something that thinks its dealing with the good old List<T> then the events won't fire (admittedly that scenario is rare).

Anyway, I decided that this was an important enough issue to log it in LadyBug, when I found that someone else had already reported it. So, if you think you might be impacted by this some time down the track please log on to LadyBug and vote, I think that they should be able to fix this one by BETA 2.

My preference would be to have events raise AND to have them marked virtual to enable both usage scenarios.