/// <summary> /// Metoda do pobrania z API danych oraz wczytywanie ich do widoku. /// </summary> /// <param name="download">Obiekt implementujący IDownloadCompetition, musi posiadać właściwość liste CompetitionsDTO</param> /// <param name="listView">Widok listy</param> /// <param name="grid">Grid aplikacji</param> /// <param name="lblNoInternet">Labelka do informacji o braku połączenia</param> public async void DownloadData(IDownloadCompetition download, ListView listView, Grid grid, Label lblNoInternet) { await download.HttpCall(); Results = download.results; Competitions = new List <CustomCompetition>(); if (Results != null) { foreach (var result in Results) { CustomCompetition custom = new CustomCompetition() { Id = result.Id, Caption = result.Caption, League = result.League, Year = result.Year, CurrentMatchday = result.CurrentMatchday.ToString(), NumberOfMatchdays = result.NumberOfMatchdays.ToString(), NumerOfTeams = result.NumberOfTeams.ToString() }; Competitions.Add(custom); } } else { lblNoInternet.IsVisible = true; } listView.ItemsSource = Competitions; grid.IsVisible = false; }
protected override void OnAppearing() { listView.ItemTemplate = new DataTemplate(typeof(CompetitionsView)); IDownloadCompetition download = new DownloadCompetition(); _vm.DownloadData(download, listView, grid, LblNoInternet); listView.ItemSelected += async(s, e) => { grid.IsVisible = true; CustomCompetition item = (CustomCompetition)e.SelectedItem; CompetitionPage page = new CompetitionPage(); page.Title = item.Caption; (Application.Current as App).CompetitionId = item.Id; //await Task.Delay(1000); await Navigation.PushAsync(page); }; }
private void ItemsSourceChanged() { _layout.Children.Clear(); foreach (var item in ItemsSource) { CustomCompetition custom = (CustomCompetition)item; if (custom.Id == 1) { ItemTemplate = new DataTemplate(typeof(CompetitionView)); } else if (custom.Id == 2) { ItemTemplate = new DataTemplate(typeof(FixturesView)); } else if (custom.Id == 3) { ItemTemplate = new DataTemplate(typeof(LeagueView)); } else { ItemTemplate = new DataTemplate(typeof(TeamsView)); } var view = (View)ItemTemplate.CreateContent(); var bindableObject = view as BindableObject; if (bindableObject != null) { bindableObject.BindingContext = item; } _layout.Children.Add(view); } if (_selectedIndex > -1) { SelectedIndex = _selectedIndex; } }