bing マップ コントロールをタップすると、位置情報を取得しようとしています。入手方法はわかっているのですが、ViewModelで作りたいです。タップ イベントでは、インタラクションを使用します。
<map:Map CopyrightVisibility="Collapsed" LogoVisibility="Collapsed">
<map:MapTileLayer>
<map:MapTileLayer.TileSources>
<customMap:OpenStreetTile />
</map:MapTileLayer.TileSources>
</map:MapTileLayer>
<map:MapLayer>
<map:Pushpin Location="{Binding Location}" />
</map:MapLayer>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Tap">
<cmd:EventToCommand Command="{Binding AddPushpinCommand}" PassEventArgsToCommand="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
</map:Map>
GetPosition 関数を使用して、イベント引数から位置を取得できます。しかし、この関数にはUIElementパラメータが必要です。私はそうしました:
var source = (e.OriginalSource as MapLayer).ParentMap;
var point = e.GetPosition(source);
Location = source.ViewportPointToLocation(point);
しかし、それが良い解決策かどうかはわかりません。それを行う方法はありますか?ありがとう