如何将我的数据库中的所有信息发送到引脚并将其发送到另一个页面?

问题描述 投票:0回答:1

我有从我的数据库收到的多个数据,我希望所有数据都用我的pin发送,但我不知道应该怎么做。现在我发送pin.Name + pin.Address,但我希望从特定的pin信息到达下一页。所以在我的情况下,例如,电话号码,URL等,但由于我现在发送我的pin作为发件人,我不知道如何发送所有信息。

这是我正在使用的代码:

private async Task<List<Pin>> LoadData() 
{
    var pins = new List<Pin> ();    
    var getItems = await phpApi.getInfo ();

    foreach (var currentItem in getItems["results"]) {
        longString = currentItem ["long"].ToString (); 
        latString = currentItem ["lat"].ToString ();
        nameString = currentItem ["name"].ToString (); 
        adressString = currentItem ["adress"].ToString (); 
        phoneString = currentItem ["phone"].ToString (); 
        urlString = currentItem ["URL"].ToString (); 

        var pin = new Pin ();
        pin.Position = new Position (latString, longString);
        pin.Label = nameString;
        pin.Address = adressString;
        pin.Clicked += onButtonClicked1;
        pins.Add (pin);
    }
}

void onButtonClicked1 (object s, EventArgs a)
{
    Pin pin = (Pin)s;
    Navigation.PushModalAsync (new DetailPage ( pin.Label, pin.Address)); // How do I include all of the strings here to the next page?
 }
c# xamarin xamarin.forms
1个回答
0
投票

在自定义DetailPage的构造函数内部,您应该能够接收Pin对象。

EX:

public class MyDetailPage : ContentPage
{
    public MyDetailPage(Pin pin)
    {
       //Do whatever you need to do to your Pin here. 
    }
}

但是,我可能会说使用自定义对象会更容易。

public class MyCustomPinHolder
{
    private string Phone { get; set; }
    private string Name { get; set; }
    ...
    private Pin Pin { get; set;}
}

一些说明:

  • 您可能需要考虑使用将项目保存到数据库/本地缓存的方法。
  • 然后,您可以在给定唯一ID的情况下从数据库/缓存中提取相应的项目。
© www.soinside.com 2019 - 2024. All rights reserved.