by Michael Agroskin
ObservableCollection attaches to the PropertyChanged events of its children using the WeakEvents pattern, and raises the ChildPropertyChanged event accordingly. Replicates functionality of BindingList but without the overhead. Very useful when you need to update / select / arrange / move items.