0

Windows phone 7 (bing maps) 用のアプリを作成していますが、次のようなものを追加する必要があります。

  • マップをタップすると、そこに画鋲を追加したいのですが、その画鋲にいくつかの情報 (名前や説明など) を追加する必要もあります

これどうやってするの?または、そのためのチュートリアルはどこにありますか?

4

1 に答える 1

0

マップの Tap イベントをサブスクライブして画鋲を追加できます。

XAML:

<Maps:Map x:Name="Map" CredentialsProvider="Your-Creds" Tap="Map_OnTap" />

コード:

private void Map_OnTap(object sender, GestureEventArgs e)
{
    GeoCoordinate location;
    if (Map.TryViewportPointToLocation(e.GetPosition(Map), out location))
    {
        Map.Children.Add(new Pushpin
            {
                Location = location,
                Background = new SolidColorBrush(Colors.Blue),
                Content = "Hello world"
            });
    }
}

MVVM アプローチが必要な場合は、追加するオブジェクトのコレクションを持つことができます。

Xaml:

<Maps:Map x:Name="Map" CredentialsProvider="Your-creds" 
            Tap="Map_OnTap">
    <Maps:MapItemsControl ItemsSource="{Binding Locations}">
        <Maps:MapItemsControl.ItemTemplate>
            <DataTemplate>
                <Maps:Pushpin Location="{Binding Location}" Content="{Binding Name}"
                                Background="{StaticResource PhoneAccentBrush}">
                </Maps:Pushpin>
            </DataTemplate>
        </Maps:MapItemsControl.ItemTemplate>
    </Maps:MapItemsControl>
</Maps:Map>

コード:

public ObservableCollection<MapLocation> Locations { get; private set; }

private void Map_OnTap(object sender, GestureEventArgs e)
{
    GeoCoordinate location;
    if (Map.TryViewportPointToLocation(e.GetPosition(Map), out location))
    {
        Locations.Add(new MapLocation
            {
                Location = location,
                Name = "Hello world"
            });
    }
}

public class MapLocation
{
    public GeoCoordinate Location { get; set; }
    public string Name { get; set; }
}

この例では、ページの DataContext をそれ自体に設定するだけです。より良い方法は、ページの DataContext を Locations プロパティを持つビュー モデルに設定することです。

于 2013-08-09T18:04:58.033 に答える