あなたが述べたように、Location
andはandTitle
にバインドできます。ただし、MapControl に MapIcon を表示するには、MapIcon をその MapElements コレクションにプログラムで追加する必要があります。Geopoint
AttractionName
例えば:
のLoaded
場合MapControl
。
private void MapControl_Loaded(object sender, RoutedEventArgs e)
{
MapControl.MapElements.Add(MyMapIcon);
}
この後、画像MapIcon
のように表示できMapControl
ます。しかし、 の左上隅にクラス名の文字列があることがわかりますMapControl
。
MapIcon
これは、MapControl の暗黙的な子としてを追加するためです。次の XAML コードのように追加MapIcon
することと同等です。MapItemsControl
<Maps:MapControl x:Name="MapControl" ZoomLevel="14" Center="{Binding Geopoint, Mode=OneWay}" Margin="-12,0,-12,0" Height="200" PanInteractionMode="Disabled" RotateInteractionMode="Disabled" Loaded="MapControl_Loaded">
<Maps:MapItemsControl>
<Maps:MapIcon x:Name="MyMapIcon" Location="{Binding Geopoint}" Title="{Binding AttractionName}" />
</Maps:MapItemsControl>
</Maps:MapControl>
MapItemsControl は、Button、HyperlinkButton、TextBlock などの XAML ユーザー インターフェイス要素を MapControl の子として追加することで表示できます。MapIcon は MapControl に表示できないため、そのクラス名を表示します。
回避策として、問題を解決するために を入れることができMapIcon
ますResources
。例えば:
<Page.Resources>
<Maps:MapIcon x:Name="MyMapIcon" Location="{Binding Geopoint}" Title="{Binding AttractionName}" />
</Page.Resources>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Maps:MapControl x:Name="MapControl" ZoomLevel="14" Center="{Binding Geopoint, Mode=OneWay}" Margin="-12,0,-12,0" Tapped="directions_Click" Height="200" MapServiceToken="{StaticResource BingMapsKey}" PanInteractionMode="Disabled" RotateInteractionMode="Disabled" Loaded="MapControl_Loaded">
</Maps:MapControl>
</Grid>