コード例 #1
0
 public ConstraintEnforcementCollectionCallbacks(PotentialCollectionModificationCallback <TClass, TProperty> adding, CommittedCollectionModificationCallback <TClass, TProperty> added, PotentialCollectionModificationCallback <TClass, TProperty> removing, CommittedCollectionModificationCallback <TClass, TProperty> removed)
 {
     this.Adding   = adding;
     this.Added    = added;
     this.Removing = removing;
     this.Removed  = removed;
 }
コード例 #2
0
            public void Add(TProperty item)
            {
                if (item == null)
                {
                    throw new ArgumentNullException("item");
                }
                TClass instance = this._Instance;
                ConstraintEnforcementCollectionCallbacks <TClass, TProperty> callbacks = instance.Context.GetConstraintEnforcementCollectionCallbacks <TClass, TProperty>();
                PotentialCollectionModificationCallback <TClass, TProperty>  adding    = callbacks.Adding;

                if ((object)adding == null || adding(instance, item))
                {
                    this._List.Add(item);
                    CommittedCollectionModificationCallback <TClass, TProperty> added = callbacks.Added;
                    if ((object)added != null)
                    {
                        added(instance, item);
                    }
                }
            }
コード例 #3
0
            public bool Remove(TProperty item)
            {
                if (item == null)
                {
                    throw new ArgumentNullException("item");
                }
                TClass instance = this._Instance;
                ConstraintEnforcementCollectionCallbacks <TClass, TProperty> callbacks = instance.Context.GetConstraintEnforcementCollectionCallbacks <TClass, TProperty>();
                PotentialCollectionModificationCallback <TClass, TProperty>  removing  = callbacks.Removing;

                if ((object)removing == null || removing(instance, item))
                {
                    if (this._List.Remove(item))
                    {
                        CommittedCollectionModificationCallback <TClass, TProperty> removed = callbacks.Removed;
                        if ((object)removed != null)
                        {
                            removed(instance, item);
                        }
                        return(true);
                    }
                }
                return(false);
            }