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() } } ; }
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); } }