public virtual void Insert(ConnectedListItem <TItemType, TSourceType> newItem, int position)
 {
     if (newItem.CanAdd())
     {
         newItem.BeforeAdd(this, position);
         list.Insert(newItem, position);
     }
 }
 public virtual void Add(ConnectedListItem <TItemType, TSourceType> newItem)
 {
     if (newItem.CanAdd())
     {
         newItem.BeforeAdd(this, list.Count);
         list.Add(newItem);
     }
 }