public IEnumerable GetItemsSource()
        {
            if (IsHeaderEnabled)
            {
                yield return new MvxHeaderItemData()
                       {
                           ItemsSource = _decoratedItemsSourceBridge.GetItemsSource()
                       }
            }
            ;

            foreach (var item in _decoratedItemsSourceBridge.GetItemsSource())
            {
                yield return(item);
            }

            if (IsFooterEnabled)
            {
                yield return new MvxFooterItemData()
                       {
                           ItemsSource = _decoratedItemsSourceBridge.GetItemsSource()
                       }
            }
            ;
        }
Beispiel #2
0
        public IEnumerable GetItemsSource()
        {
            var baseItemsSource = _decoratedItemsSourceBridge.GetItemsSource() ?? Enumerable.Empty <object>();

            if (!IsGenericEnumerable(baseItemsSource))
            {
                foreach (var item in baseItemsSource)
                {
                    yield return(item);
                }
                yield break;
            }

            var genericEnumerableArgumentType = GetEnumerableGenericArgumentType(baseItemsSource);

            if (genericEnumerableArgumentType != typeof(MvxGroupedData) && GroupedDataConverter == null) // sorry, no grouping support!
            {
                foreach (var item in baseItemsSource)
                {
                    yield return(item);
                }
                yield break;
            }

            IMvxGroupedDataConverter groupedDataConverter =
                genericEnumerableArgumentType == typeof(MvxGroupedData) ? new MvxDefaultGroupedDataConverter() : GroupedDataConverter;

            _groupedItemsConverter.Initialize(baseItemsSource, groupedDataConverter);

            foreach (var groupedItemRow in _groupedItemsConverter.Source)
            {
                yield return(groupedItemRow);
            }
        }