私はこれらの値を他の値と一緒に使用しています。ピンに値(int、object、string)を格納するにはもう1つスロットが必要です。カスタムピンなどを作って余分な値を保存することはできますが、可能であれば時間を節約するために、ピンに何かを保存する余分なスロットが1つあれば、コードがはるかに簡単になります。Pin(Int/string/object)の値をLabel、Adress、およびBindingcontext以外のもので使用して保存することはできますか?
pin.Label = info1String;
pin.Address = info2String;
pin.BindingContext = info3String;
と私のピンにinfo4Stringも格納する必要があります。値を格納するためにピンに残っている "スポット"はありますか?それとも私は唯一のものの上に使用したものですか?そうでなければ、私はカスタムピンを作る必要があります。
更新:
Dictionary<string,string> data = new Dictionary<string,string>();
private async Task<List<Pin>> LoadData()
{
var pins = new List<Pin>();
var getItems = await phpApi.getInfo();
data.Add("info3", phoneString);
data.Add("info4", urlString);
foreach (var currentItem in getItems["results"]) {
nameString = currentItem ["name"].ToString();
adressString = currentItem ["adress"].ToString();
phoneString = currentItem ["phone"].ToString();
urlString = currentItem ["URL"].ToString();
var pin = new Pin();
pin.Label = nameString;
pin.Address = adressString;
pin.BindingContext = data;
pin.Clicked += onButtonClicked1;
pins.Add (pin);
}
}
void onButtonClicked1 (object s, EventArgs a)
{
Pin pin = (Pin)s;
Dictionary<string,string> myData = (Dictionary<string,string>) pin.BindingContext;
Navigation.PushModalAsync (new DetailPage(myData["info3"], myData["info4"]));
}
public DetailPage (object theInfo, object theInfo2)
{
labelOne.text = theInfo;
labelTwo.text = theInfo2;
}
のBindingContextは、任意の複雑なオブジェクトにすることができますような、より複雑なオブジェクトを持つ - あなたは辞書、リスト、タプル、カスタムクラスを格納することができ、などそれとも、ラッパーを作成することができますあなたの他の質問で説明されているように。 – Jason
それをフィルタリングしようとすると 'List
私はピンからプッシュして私にIDを押し込むページの例のために必要ですか? public DetailPage(オブジェクトバインディング){ myText = Description.ToString(); // [1]などを追加しますか? } – Yannick