Как получить объект модели канцелярской кнопки через щелчок по кнопке в карте BING? - PullRequest
1 голос
/ 25 января 2012

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

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 и т. Д. Как я могу это сделать?

1 Ответ

3 голосов
/ 25 января 2012

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

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

var pushpinModel = (sender as Pushpin).DataContext as PushpinModel;
...