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);
 }