当我点击我的图钉时,我希望 Pin.Adress 发生变化。我很难获得 Clickedfunction + 更改 Pin.Adress 以一起运行
When I click on my pin I want the Pin.Adress to change. I have trouble to get the Clickedfunction + change the Pin.Adress to function together
基本上,我希望当我单击它并从我的数据库 (currentItem
) 中获取正确的值时更改引脚地址 属性。
这是代码:
void clickThis (object s, Eventargs a)
{
foreach (var currentItem in getItems["results"]) {
myString = currentItem ["info1"].ToString ();
var pin = new Pin ();
pin.Address = "Click for more info";
pin.Clicked += onButtonClicked1 (pin.PropertyChanging += (sender, e) => {
pin.Address = myString; //error: onButtonClicked1 only takes 1 argument
});
theMap.Pins.Add (pin);
}
}
void onButtonClicked1 (object sender, EventArgs e)
{
Pin pin = (Pin)sender;
Navigation.PushAsync (new DetailPage (pin.Address));
}
已更新
我设法修复了我的代码中的错误,但我的 pin 地址在我点击它后仍然没有更新。
void clickThis (object s, Eventargs a)
{
foreach (var currentItem in getItems["results"]) {
myString = currentItem ["info1"].ToString ();
var pin = new Pin ();
pin.Address = "Click for more info";
pin.Clicked += (sender, e) =>
{
pin.Address = myString;
Pin pin = (Pin)sender;
Navigation.PushAsync (new DetailPage (pin.Address));
});
theMap.Pins.Add (pin);
}
}
与您一样can see in the docs,引脚只有简单的属性可以设置。为了做你想做的事,你需要一个事件处理程序来订阅(例如 OnTextUpdated),然后使地图无效。
因此,您的请求目前无法实现。也许您可以要求 Xamarin 在将来的某个时候支持它?
基本上,我希望当我单击它并从我的数据库 (currentItem
) 中获取正确的值时更改引脚地址 属性。
这是代码:
void clickThis (object s, Eventargs a)
{
foreach (var currentItem in getItems["results"]) {
myString = currentItem ["info1"].ToString ();
var pin = new Pin ();
pin.Address = "Click for more info";
pin.Clicked += onButtonClicked1 (pin.PropertyChanging += (sender, e) => {
pin.Address = myString; //error: onButtonClicked1 only takes 1 argument
});
theMap.Pins.Add (pin);
}
}
void onButtonClicked1 (object sender, EventArgs e)
{
Pin pin = (Pin)sender;
Navigation.PushAsync (new DetailPage (pin.Address));
}
已更新
我设法修复了我的代码中的错误,但我的 pin 地址在我点击它后仍然没有更新。
void clickThis (object s, Eventargs a)
{
foreach (var currentItem in getItems["results"]) {
myString = currentItem ["info1"].ToString ();
var pin = new Pin ();
pin.Address = "Click for more info";
pin.Clicked += (sender, e) =>
{
pin.Address = myString;
Pin pin = (Pin)sender;
Navigation.PushAsync (new DetailPage (pin.Address));
});
theMap.Pins.Add (pin);
}
}
与您一样can see in the docs,引脚只有简单的属性可以设置。为了做你想做的事,你需要一个事件处理程序来订阅(例如 OnTextUpdated),然后使地图无效。
因此,您的请求目前无法实现。也许您可以要求 Xamarin 在将来的某个时候支持它?