Using random JSON data picker in MAUI Community Toolkit Popup

Viewed 63

I created random JSON data picker and I want to display picked data it in MAUI Community Toolkit Popop. . Code:

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)
    {
        this.ShowPopup(new PopupPageAlert(drinks.First(x => x.id == randomdrink)));
    }
}

Popup Code:

public partial class PopupPageAlert : Popup
{
public drinksclass drink { get; set; }
public PopupPageAlert(drinksclass drink)
{
    InitializeComponent();
    this.drink = drink;
    this.BindingContext = this.drink;
}

private void CloseBtn_Clicked(object sender, EventArgs e)
{
    this.Close();
}
1 Answers

you can pass a parameter via the constructor, like with any C# class

this.ShowPopup(new PopupPage(drinksclass));

then in the constructor of the popup page

public drinksclass drink { get; set; }

public PopupPage(drinksclass drink)
{
   InitializeComponent();

   this.BindingContext = this.drink = drink;

   ...
}

then in your XAML

<Label Text="{Binding name}" .. />
Related