当我点击我的图钉时,我希望 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 在将来的某个时候支持它?