private void CallBehaviors(CollectionChangedArgs <TItemVM> args)
 {
     OwnerProperty.Behaviors.TryCall <ICollectionChangeHandlerBehavior <TItemVM> >(b =>
                                                                                   b.HandleChange(OwnerVM.GetContext(), args)
                                                                                   );
 }
 public void HandleChange(IBehaviorContext context, CollectionChangedArgs <IViewModel> args)
 {
     HandleChangeInvocations.Add(args);
 }
        protected void HandleCollectionPopulated(TItemVM[] previousItems)
        {
            var args = CollectionChangedArgs <TItemVM> .CollectionPopulated(Collection, previousItems);

            Behavior.HandleChange(Context, args);
        }
        protected void HandleItemSet(TItemVM previousItem, TItemVM item, int index = 0)
        {
            var args = CollectionChangedArgs <TItemVM> .ItemSet(Collection, previousItem, item, index);

            Behavior.HandleChange(Context, args);
        }
        protected void HandleItemRemoved(TItemVM item, int index = 0)
        {
            var args = CollectionChangedArgs <TItemVM> .ItemRemoved(Collection, item, index);

            Behavior.HandleChange(Context, args);
        }
 public CollectionModificationAction(
     CollectionChangedArgs <TItemVM> change
     )
 {
     _change = change;
 }