public ListEventHelper(PalasoDataObject listOwner, IBindingList list, string listName) { _listOwner = listOwner; _listName = listName; list.ListChanged += OnListChanged; foreach (INotifyPropertyChanged x in list) { _listOwner.WireUpChild(x); } }
private void OnListChanged(object sender, ListChangedEventArgs e) { if (e.ListChangedType == ListChangedType.ItemAdded) { IBindingList list = (IBindingList)sender; INotifyPropertyChanged newGuy = (INotifyPropertyChanged)list[e.NewIndex]; _listOwner.WireUpChild(newGuy); if (newGuy is PalasoDataObject) { ((PalasoDataObject)newGuy).Parent = _listOwner; } } _listOwner.NotifyPropertyChanged(_listName); }