Bing Map на Windows Phone - добавление событий нажатия на кнопки; показать больше деталей - PullRequest
4 голосов
/ 01 сентября 2011

У меня есть приложение WP Phone, использующее элемент управления Bing Map. У меня есть массив объектов, и у каждого объекта есть местоположение. Я перебираю массив, чтобы разместить контакты на карте (см. Ниже). У меня есть событие касания, связанное с каждым контактом, чтобы пользователь мог нажать на него, чтобы начать действие.

Теперь - я хотел бы, чтобы при касании отображалась информация из объекта, имеющего отношение к этому выводу, для отображения в текстовом поле. Как я могу получить объект из массива, который соответствует кнопке, которая была нажата / нажата?

foreach (wikiResult result in arrayResults)
{
    double lat = double.Parse(result.Latitude, CultureInfo.InvariantCulture);
    double lng = double.Parse(result.Longitude, CultureInfo.InvariantCulture);
    statusTextBlock.Text = result.Latitude + "  " + result.Longitude + "  " + lat + "  " + lng;

    GeoCoordinate d = new GeoCoordinate(lat, lng);

    Pushpin pin;
    pin = new Pushpin();
    pin.Location = d;
    pin.Content = result.Name;
    pin.MouseLeftButtonUp += new MouseButtonEventHandler(pin1_MouseLeftButtonUp);
    myMap.Children.Add(pin);
}

void pin1_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
    //display the content from the object in a text box
}  

Большое спасибо заранее!

1 Ответ

7 голосов
/ 01 сентября 2011

sender - это Pushpin, поэтому вы можете просто ввести его:

var pushpin = sender as Pushpin

И тогда вы можете получить доступ к его содержимому. Если вам нужно более подробное связывание, используйте свойство Tag канцелярской кнопки.

Также я бы предложил вам использовать событие Tap на Pushpin, если вы используете Windows Phone 7.1 (Mango). И я бы также рекомендовал вам использовать привязки данных вместо того, чтобы вручную добавлять элементы из C #.

...