当我点击我的图钉时,如何将正确的图像从我的数据库加载到正确的项目?

时间:2016-01-27 17:38:26

标签: c# forms xamarin maps

所以我的代码中有一个带有多个引脚的地图。当我点击一个图钉时,我会看到一个带有pintitle的新页面。这有效,但如果我想在同一页面上添加一个图像/和/或描述(我也存储在我的数据库中,解析)它不起作用,因为我只在每次点击的每个不同的针上获得存储在数据库中的topimage。 / p>

string picture;
string theDescription;

var getItems = await parseAPI.getInfo (Application.Current.Properties ["sessionToken"].ToString ()); //I load my data.

foreach (var currentItem in getItems["results"]) 
{

var prodPic = "";
if(currentItem["image"] != null)
{
    prodPic = (string)currentItem ["image"] ["url"];
}
picture = prodPic; //i add the picture.
theDescription = currentItem ["description"].ToString (); // i add the descrption
dName = currentItem ["name"].ToString (); //and the title

    var pin = new Pin ();
    pin.Position = new Position (16,13);
    pin.Label = dName; //and then i connect my title here so it works, but how should I do it with my picture + description?
    pin.Address = "click for info";
    pin.Clicked += onButtonClicked1;

    theMap.Pins.Add (pin); //adding my pins to my map. 
  }

void onButtonClicked1 (object sender, EventArgs e)
    {
        Pin pin = (Pin)sender;

        Navigation.PushAsync (new DetailPage (pin.Label, picture, theDescription )); //label works, so every pin get a unique label, but picture + the description remains the same inside the item i enter.

    }

所以它适用于标题,那是因为我已经将引脚连接到我假设的onbuttonclicked1(pin.label)函数?所以我应该如何使用我的图像+描述,所以引脚在我输入的每个引脚上都没有得到相同的图片+描述

更新后的想法:

new List <String> ourItems = new List<String> ();

ourItems.Add (theDescription);
ourItems.Add (picture);

喜欢这个?然后以某种方式将它们连接到我的OnButtonClicked1函数?

1 个答案:

答案 0 :(得分:1)

您正在运行foreach循环,该循环重复设置相同的“图片”变量。也就是说,每次迭代时,您都将“图片”和“描述”变量设置为与当前迭代相关的任何值,而不实际将任何先前值保持在任何位置。

你的循环看起来像这样:

  

迭代一:picture =“pictureOne.png”;

     

迭代二:picture =“pictureTwo.png”;

     

迭代三:picture =“PictureThree.png”;

     

...等

这意味着当你的循环结束时,你将多次重置你的想象,变量保留其最后的设定值(在上面的例子中将是“pictureThree.png”

一种方式(不一定是最好的,请注意)是一个空列表,然后从循环中填充。