2016-03-30 5 views
0

私は自分のデータベースから受け取った複数のデータを持っていますが、私はそれを私のピンですべて送ってもらいたいですが、どうすればいいのか分かりません。今、私はpin.Name + pin.Addressを送っていますが、私はその特定のピン情報から次のページに至るまですべてを欲しいと思います。だから私の場合は、例えば電話番号、URLなどですが、今は私のピンを送信者として送信しているので、すべての情報を送信する方法はわかりません。これは、私が働いているコードであるDBから私の情報をすべてピンに送って別のページに送るにはどうすればいいですか?

:カスタムDetailPageのコンストラクタの内部

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? 
} 

答えて

0

、あなたは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が与えられたデータベース/キャッシュからそれぞれの項目を引き出すことができます。
+0

最初の例では、(私の場合は)phoneStringまたはurlStringをピンにバインドしていないので、その情報を取得しようとすると、それを見つけることができませんピン。 ...?右?どうすればピンに結びつけることができますか? (私は実際に何か他のPin.BindingContextを実際に使用していますが、使用できる他のPinはありますか?) – Yannick

+0

上記のようなPinHolderオブジェクトにこれらのプロパティをすべて追加できます。これらのフィールドにAPIの結果を入力する必要があります。私の例では、PropertiesはPinオブジェクトとは別になっています。 –

+0

ループの中で 'var pin = new Pin();'の代わりに、 'var myCustomPin = new MyCustomPinHolder(); \t \t \t \t \t \t \t \t myCustomPin.Pin; '私はピンを作るあなたはそのような何かを行うことができます代わりに民間 – Yannick

関連する問題