private static IList GetDataSourceCore(DataContext dataContext, object dataSource, string dataMember)
        {
            ListBrowser browser = dataContext.GetDataBrowser(dataSource, dataMember, true) as ListBrowser;

            if (browser == null)
            {
                return(null);
            }
            return(browser.List);
        }
Пример #2
0
 public DataGroupInfo(object dataSource, string dataMember, ListBrowser listBrowser, IList list, GroupRowInfo groupRowInfo)
 {
     if (dataSource == null)
     {
         throw new ArgumentNullException(nameof(dataSource));
     }
     if (dataMember == null)
     {
         throw new ArgumentNullException(nameof(dataMember));
     }
     ListBrowser  = listBrowser;
     List         = list;
     GroupRowInfo = groupRowInfo;
     DataSource   = dataSource;
     DataMember   = dataMember;
 }
Пример #3
0
        public static GroupRowInfo GetGroupInfo(ListBrowser browser, byte rowGroupLevel, int browserPosition)
        {
            var listController = (SortedListController)browser.ListController;
            var dataController = listController.GetDataController();

            // All tests I could come up with indicate that browser position and controller row are the same value.
            var r = dataController.GroupInfo.Single(i => i.Level == rowGroupLevel && i.ContainsControllerRow(browserPosition));

            /* Has never happened, in production for months.
             * var sanityTestIndicesMapper = listController.GetIndicesMapper();
             * for (var i = 0; i < r.ChildControllerRowCount; i++)
             *  if (sanityTestIndicesMapper[r.ChildControllerRow + i] != r.ChildControllerRow + i)
             *      throw new InvalidOperationException("Sanity check failed on list controller indices mapper.");
             */

            return(r);
        }
        public static GroupRowInfo GetGroupInfo(ListBrowser browser, byte rowGroupLevel, int browserPosition)
        {
            var listController = (SortedListController)browser.ListController;
            var dataController = listController.GetDataController();

            // All tests I could come up with indicate that browser position and controller row are the same value.
            var r = dataController.GroupInfo.Single(i => i.Level == rowGroupLevel && i.ContainsControllerRow(browserPosition));

            /* Has never happened, in production for months.
            var sanityTestIndicesMapper = listController.GetIndicesMapper();
            for (var i = 0; i < r.ChildControllerRowCount; i++)
                if (sanityTestIndicesMapper[r.ChildControllerRow + i] != r.ChildControllerRow + i)
                    throw new InvalidOperationException("Sanity check failed on list controller indices mapper.");
            */

            return r;
        }