private async Task <LoadMoreItemsResult> LoadMoreItemsAsync(IncrementalLoaderCollection <StoreApp> collection, uint count) { List <StoreApp> loadedAapps = new List <StoreApp>(); if (LoadingApps) { return(new LoadMoreItemsResult() { Count = 0 }); } UiManager.ShowLoading(); AppQueryParameters.PageIndex = StoreApps.Count / AppQueryParameters.PageSize; LoadingApps = true; try { loadedAapps.AddRange(await AppManager.Instance.GetAppsAsync(AppQueryParameters)); _hasMoreItems = (loadedAapps.Count() == AppQueryParameters.PageSize); } catch (Exception exp) { _hasMoreItems = false; View.ShowNetworkErrorMessage(); } LoadingApps = false; loadedAapps.ForEach(app => collection.Add(app)); UiManager.HideLoading(); return(new LoadMoreItemsResult() { Count = (uint)loadedAapps.Count }); }
public CatalogPageViewModel() { StoreApps = new IncrementalLoaderCollection <StoreApp>(HasMoreItems, LoadMoreItemsAsync); TopApplications = new List <StoreApp>(); TopGames = new List <StoreApp>(); _hasMoreItems = true; }
private bool HasMoreItems(IncrementalLoaderCollection <StoreApp> dataSource) { return(_hasMoreItems); }