Stworzyłem kod który wybiera losową wartość JSON. W jaki sposób mogę wyświetlić wybraną wartość JSON w popupie? Próbowałem poprzez Data Binding ale niestety nie wiem jak to zrobić.
Kod wyboru losowej wartości JSON:
public MainPage()
{
InitializeComponent();
this.BindingContext = new MainPageViewModel();
}
private async void OnButton_Clicked1(object sender, EventArgs e)
{
Random random = new Random();
int randomdrink = random.Next(1, 5);
using var stream = await FileSystem.OpenAppPackageFileAsync("drinks.json");
using var reader = new StreamReader(stream);
var drinks = JsonSerializer.Deserialize<List<drinksclass>>(stream);
if (drinks != null)
{
foreach (var drinksclass in drinks)
{
if (drinksclass.id == randomdrink)
{
//await DisplayAlert($"ALERT", drinksclass.name, "OK");
//this.ShowPopup(new PopupPageAlert(drinksclass));
}
}
}
}
Kod Popup:
public partial class PopupPageAlert : Popup
{
public drinksclass drink { get; set; }
public PopupPageAlert(drinksclass drink)
{
InitializeComponent();
this.drink = drink;
}
public PopupPageAlert()
{
InitializeComponent();
this.BindingContext = this.drink = drink;
}
private void CloseBtn_Clicked(object sender, EventArgs e)
{
this.Close();
}
}
Klasa:
public class drinksclass
{
public string name { get; set; }
public int id { get; set; }
}
JSON:
[
{
"name": "Sex On The Beach",
"id": 1
},
{
"name": "Pina Colada",
"id": 2
},
{
"name": "Mojito",
"id": 3
},
{
"name": "Cuba Libre",
"id": 4
}
]