async void OnItemSelected(object sender, SelectedItemChangedEventArgs e) { if (e == null || ((ListView)sender).SelectedItem == null) { return; // has been set to null, do not 'process' tapped event } Recipe recipe = (Recipe)e.SelectedItem; var builder = new UriBuilder("https://www.food2fork.com/api/get"); var query = HttpUtility.ParseQueryString(builder.Query); query["key"] = "d5a99efcee2509c99b3c350ac2c08f7b"; query["rId"] = recipe.recipe_id; builder.Query = query.ToString(); Debug.Write(builder.Uri); HttpClient httpClient = new HttpClient(); var response = httpClient.GetAsync(builder.Uri).Result; string content = response.Content.ReadAsStringAsync().Result; RecipeDetail detail = JsonConvert.DeserializeObject <RecipeDetail>(content); await Navigation.PushAsync(new RecipePage(detail)); ((ListView)sender).SelectedItem = null; /* * Recipe recipe = (Recipe)e.SelectedItem; * Uri uri = new Uri(recipe.source_url); * Device.OpenUri(uri); * ((ListView)sender).SelectedItem = null; // de-select the row */ }
public RecipePage(RecipeDetail recipe) { InitializeComponent(); Debug.WriteLine(recipe.recipe.title); for (int i = 0; i < recipe.recipe.ingredients.Count; i++) { recipe.recipe.ingredients[i] = HttpUtility.HtmlDecode(recipe.recipe.ingredients[i]); } image_url.Source = recipe.recipe.image_url; listView.ItemsSource = recipe.recipe.ingredients; }