/** * Creates a datasource for the listview */ public async void setupDatasource(List <Game> newGames) { var dict = new Dictionary <Game, Dictionary <int, UIImage> >(); foreach (var game in newGames) { var imageTeam1Player1 = await IOSImageUtil.FromUrl(game.team1.player1.imageUrl); var imageTeam1Player2 = await IOSImageUtil.FromUrl(game.team1.player2.imageUrl); var imageTeam2Player1 = await IOSImageUtil.FromUrl(game.team2.player1.imageUrl); var imageTeam2Player2 = await IOSImageUtil.FromUrl(game.team2.player2.imageUrl); Dictionary <int, UIImage> images = new Dictionary <int, UIImage>(); images.Add(1, imageTeam1Player1); images.Add(2, imageTeam1Player2); images.Add(3, imageTeam2Player1); images.Add(4, imageTeam2Player2); dict.Add(game, images); System.Diagnostics.Debug.WriteLine("Set datasource"); gameTableView.Source = new TableViewSource(newGames, dict, this); gameTableView.ReloadData(); } }
public async override void ViewDidLoad() { base.ViewDidLoad(); users = new List <iOSUser>(); //Get all the users (for better performance, convert to paginated lists) var userList = await UserCall.getUsers(); if (userList == null) { var alertController = UIAlertController.Create("Warning", "Could not connect to server, please try again.", UIAlertControllerStyle.Alert); alertController.AddAction(UIAlertAction.Create("Try Again", UIAlertActionStyle.Default, alert => ViewDidLoad())); alertController.AddAction(UIAlertAction.Create("No thanks", UIAlertActionStyle.Default, alert => System.Diagnostics.Debug.Write("No thanks was selected"))); this.PresentViewController(alertController, true, null); } else { // Get the image and reload the list when done foreach (var user in userList) { UIImage image = await IOSImageUtil.FromUrl(user.imageUrl); var iosUser = new iOSUser(image, user); users.Add(iosUser); System.Diagnostics.Debug.WriteLine("NR OF USERS IN LIST: " + users.Count); playersTableView.Source = new SelectPlayerDatasource(users, this); playersTableView.ReloadData(); } } }