C# 如何将数据库中的所有信息发送到pin并发送到其他页面?

C# 如何将数据库中的所有信息发送到pin并发送到其他页面?,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,我有多个数据,我从我的数据库收到,我希望所有的它都与我的pin发送,但我不知道我应该如何做。现在我发送pin.Name+pin.Address,但我希望从特定的pin信息到下一页的所有内容。因此,在我的情况下,例如,电话号码、URL等,但由于我现在以发件人的身份发送我的pin,我不知道如何发送所有信息 这是我正在使用的代码: private async Task<List<Pin>> LoadData() { var pins = new List<Pin

我有多个数据,我从我的数据库收到,我希望所有的它都与我的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?
 }
private async Task LoadData()
{
var pins=新列表();
var getItems=wait phpApi.getInfo();
foreach(getItems[“结果”]中的var currentItem){
longString=currentItem[“long”].ToString();
latString=currentItem[“lat”].ToString();
nameString=currentItem[“name”].ToString();
ADRESSTRING=currentItem[“adress”].ToString();
phoneString=currentItem[“phone”].ToString();
urlString=currentItem[“URL”].ToString();
var引脚=新引脚();
销位置=新位置(车床串、长串);
pin.Label=名称字符串;
pin.Address=地址字符串;
pin.Clicked+=on按钮clicked1;
pins.Add(pin);
}
}
void onButtonClicked1(对象s、事件参数a)
{
引脚引脚=(引脚)s;
Navigation.PushModalAsync(newdetailpage(pin.Label,pin.Address));//如何将此处的所有字符串包含到下一页?
}

在自定义
详细信息页面的构造函数中,您应该能够接收
Pin
对象

例:

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

i、 e

一些注意事项:

    <> LI>您可能需要考虑使用将该项保存到数据库/本地缓存的方法。
  • 然后,您可以在给定唯一id的情况下从数据库/缓存中提取相应的项

好的,但在第一个示例中,我没有将(在我的情况下)phoneString或urlString绑定到pin,因此当我尝试使用pin获取该信息时,它将无法找到它。。。?对吗?那我怎么才能把它绑在别针上呢?(实际上我现在正在使用Pin.BindingContext进行其他操作,但是否还有其他Pin.function可以使用?)您可以将所有这些属性添加到PinHolder对象中,如上图所示。您必须用API结果填充这些字段。在我的示例中,属性与Pin对象是分开的在循环中,我应该只使用以下命令调整代码:
var myCustomPin=new MyCustomPinHolder();myCustomPin.Pin假设我将Pin设置为公共字符串而不是privateYulp,您可以执行类似操作。然后将
MyDetailPage
构造函数改为使用
MyCustomPinHolder
类。然后,您将同时拥有一个
Pin
对象和您在其中添加的任何
Properties
。好的,非常感谢。我想我能从这里开始工作。谢谢
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;}
}