//public virtual TModelList CreateModelListFromInternalList<TModelList, TModel, TList>()
        //    where TModelList : IPSModelList<TModel, TList, T>, new()
        //    where TModel : IPSModel<TModel, T>, new()
        //    where TList : IPSEntityList<T>, new()
        //{
        //    // All TModelList (e.g. CommonPersonModelList) must have valid constructor (TPrimaryList primaryList, bool useInternalListFlag) as Activator expectation
        //    TModelList resultList = (TModelList)Activator.CreateInstance(typeof(TModelList), new object[] { this, true });
        //    return resultList;
        //}
        //public virtual TModelList CreateModelListFromObservableList<TModelList, TModel, TList>()
        //    where TModelList : IPSModelList<TModel, TList, T>, new()
        //    where TModel : IPSModel<TModel, T>, new()
        //    where TList : IPSEntityList<T>, new()
        //{
        //    // All TModelList (e.g. CommonPersonModelList) must have valid constructor (TPrimaryList primaryList, bool useInternalListFlag) as Activator expectation
        //    TModelList resultList = (TModelList)Activator.CreateInstance(typeof(TModelList), new object[] { this, false });
        //    return resultList;
        //}

        public virtual TList CreateACloneFromObservableList <TList>() where TList : IVHEntityList <T>, new()
        {
            TList list = default(TList);

            this.ReplaceInternalListWithObservableList();
            list = base.CreateAClone <TList>();
            list.ReplaceObservableListWithInternalList();
            return(list);
        }