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

本文关键字:获取 数据绑定 | 更新日期: 2023-09-27 18:20:51

我正在向绑定到数据源的映射添加一些推送ping。

        <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>

图钉绑定到数据项的"位置"成员。

现在,当有人点击pin(或在手机中触摸)时,我如何才能获得绑定到pin的项目(从绑定到地图的对象列表中)?我想基本上得到这个项目,这样我就可以在屏幕底部显示其他信息,比如名字等。或者说你已经选择了"xyz"

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

如果使用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>

只要在你的虚拟机中有一个名为PusphinClick的ICommand,你就会得到Execute 参数中的数据

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