C# 如何将数据库中的所有信息发送到pin并发送到其他页面?
我有多个数据,我从我的数据库收到,我希望所有的它都与我的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.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;}
}