Как добавить событие Pushpin Onclick? - PullRequest
1 голос
/ 23 сентября 2011

Я использую приведенный ниже код для отключения нескольких кнопок из файла XML. Я хотел бы знать, как настроить событие касания для каждой метки, которая будет передавать значение

    foreach (var root in Transitresults)
    {
        var accentBrush = (Brush)Application.Current.Resources["PhoneAccentBrush"];

        var pin = new Pushpin
        {
            Location = new GeoCoordinate
                {
                    Latitude = root.Lat,
                    Longitude = root.Lon
                },
            Background = accentBrush,
            Content = root.Name
        };

        BusStopLayer.AddChild(pin, pin.Location);

    }
}

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

То, что у вас есть, довольно близко, попробуйте это: -

    foreach (var root in Transitresults)
    {
        var accentBrush = (Brush)Application.Current.Resources["PhoneAccentBrush"];

        var pin = new Pushpin
        {
            Location = new GeoCoordinate
                {
                    Latitude = root.Lat,
                    Longitude = root.Lon
                },
            Background = accentBrush,
            Content = root.Name,
            Tag = root
        };
        pin.MouseLeftButtonUp += BusStop_MouseLeftButtonUp;


        BusStopLayer.AddChild(pin, pin.Location);

    }
}

void BusStop_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
    var root =  ((FrameworkElement)sender).Tag as BusStop;
    if (root != null)
    {
        // You now have the original object from which the pushpin was created to derive your
        // required response.
    }
}
0 голосов
/ 23 сентября 2011

Со страницы MSDN для событий PushPin вы можете видеть, что событие Tap доступно, и поэтому вы можете зарегистрировать обработчик:

pin.Tap += args => { /* do what you want to do */ };
...