IList <T> GetList <T>(object listRef)
            {
                if (listRef == null)
                {
                    return(null);
                }
                var list = listRef as IList <T>;

                return(list != null ? list : ListAdapter <T> .FromObjectList((IList)listRef));
            }
            IList <T> GetList <T>(WeakReference listRef)
            {
                object listObject = listRef.Target;

                if (listObject == null)
                {
                    return(null);
                }
                var list = listObject as IList <T>;

                return(list != null ? list : ListAdapter <T> .FromObjectList((IList)listObject));
            }