获取数据绑定项中的当前项

时间:2012-01-20 17:01:20

标签: c# windows-phone-7

我正在为一个与数据源绑定的地图添加一些推送。

        <my:Map Height="340" HorizontalAlignment="Left" Margin="12,100,0,0" Name="settingsmap" VerticalAlignment="Top" Width="438" CredentialsProvider="_">
            <my:MapItemsControl Name="settingsMapItemControl" MouseLeftButtonDown="settingsMapItemControl_MouseLeftButtonDown">
                <my:MapItemsControl.ItemTemplate>
                    <DataTemplate>
                        <my:Pushpin Location="{Binding location}">
                        </my:Pushpin>
                    </DataTemplate>
                </my:MapItemsControl.ItemTemplate>
            </my:MapItemsControl>
        </my:Map>

推针绑定到dataitem的“location”成员。

现在当有人点击图钉(或触摸手机)时,如何获取绑定到图钉的项目(从绑定到地图的对象列表)? 我想基本上得到这个项目,以便我可以在屏幕底部显示名称等其他信息。或者说你选择了“xyz”

1 个答案:

答案 0 :(得分:1)

如果您正在使用MVVM,请在Pushpin上放置EventTrigger和InvokeCommandAction,并将DataContext本身绑定到Command参数。

<my:Pushpin Location="{Binding location}">
 <i:Interactivity.Triggers>
   <i:EventTrigger EventName="Tap">
     <i:InvokeCommandAction Command="{Binding PushpinClick}" 
         CommandParameter="{Binding}" />
    </i:EventTrigger>
   <i:Interactivity.Triggers>
</my:Pushpin>

只需在您的VM中有一个名为PusphinClick的ICommand,您就可以获得参数Execute

中的数据

如果您不使用MVVM,那么它会变得有点棘手 - 尝试将MouseLeftButtonDown事件处理程序附加到图钉上。在事件处理程序中,您可以通过将(sender as Pushpin).DataContext作为YourDataItem ...

来获取“数据”