所以我的代码中有一个带有多个引脚的地图。当我点击一个图钉时,我会看到一个带有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函数?
答案 0 :(得分:1)
您正在运行foreach循环,该循环重复设置相同的“图片”变量。也就是说,每次迭代时,您都将“图片”和“描述”变量设置为与当前迭代相关的任何值,而不实际将任何先前值保持在任何位置。
你的循环看起来像这样:
迭代一:picture =“pictureOne.png”;
迭代二:picture =“pictureTwo.png”;
迭代三:picture =“PictureThree.png”;
...等
这意味着当你的循环结束时,你将多次重置你的想象,变量保留其最后的设定值(在上面的例子中将是“pictureThree.png”
一种方式(不一定是最好的,请注意)是一个空列表,然后从循环中填充。