public override bool Remove(DomainObject domainObject)
        {
            ArgumentUtility.CheckNotNull("domainObject", domainObject);

            int index = IndexOf(domainObject.ID);

            if (index == -1)
            {
                return(false);
            }

            OnDataChanging(OperationKind.Remove, domainObject, index);
            WrappedData.Remove(domainObject);
            OnDataChanged(OperationKind.Remove, domainObject, index);

            return(true);
        }
        public override bool Remove(ObjectID objectID)
        {
            ArgumentUtility.CheckNotNull("objectID", objectID);

            int index = IndexOf(objectID);

            if (index == -1)
            {
                return(false);
            }

            var domainObject = GetObject(objectID);

            OnDataChanging(OperationKind.Remove, domainObject, index);
            WrappedData.Remove(objectID);
            OnDataChanged(OperationKind.Remove, domainObject, index);

            return(true);
        }