Как получить объект модели канцелярской кнопки, щелкнув канцелярскую кнопку на карте Bing?

Мои канцелярские кнопки добавляются на карту обычным способом:

C#:

private readonly ObservableCollection<PushpinModel> _pushpins = new observableCollection<PushpinModel>();

public ObservableCollection<PushpinModel> Pushpins
{
    get{return _pushpins;}
}

XAML:

<my:MapItemsControl ItemsSource="{Binding Pushpins}">
    <my:MapItemsControl.ItemTemplate>
        <DataTemplate>
            <my:Pushpin Style="{StaticResource PushpinStyle}" 
                        MouseLeftButtonUp="Pushpin_MouseLeftButtonUp" 
                        Location="{Binding Location}" 
                        Content="{Binding Num}">
            </my:Pushpin>
        </DataTemplate>
    </my:MapItemsControl.ItemTemplate>
</my:MapItemsControl>

Нажав на канцелярскую кнопку, я могу получить канцелярскую кнопку в качестве отправителя и получить информацию о местоположении. Но я хотел бы отследить его объект PushpinModel, чтобы получить другую информацию, связанную с Pushpin, такую ​​как имя, описание, URL-адреса и т. д. Как я могу это сделать?


person user586537    schedule 25.01.2012    source источник


Ответы (1)


Прежде всего, вы должны использовать событие Tap вместо MouseLeftButtonUp.

Во-вторых, sender в обработчике событий — это Pushpin, а его свойство DataContext — это ваша привязка PushpinModel, поэтому просто выполните:

var pushpinModel = (sender as Pushpin).DataContext as PushpinModel;
person Claus Jørgensen    schedule 25.01.2012