绑定列表以获取带有地图的图钉

时间:2014-04-18 08:39:16

标签: c# wpf mvvm binding bing-maps

您好我在WPF应用中使用Bing地图

我的页面包含地图。

我页面的dataContext包含Place这些地方有GeoLocation的列表:

public class GeoCoordinate
{
    public double latitude { get; set; }
    public double longitude { get; set; }
    public double altitude { get; set; }
}

public class Place
{
    [...]
    public GeoCoordinate position { get; set; }
}

public class datacontext
{
    [...]
    public List<Place> places { get; set; }

}

我想绑定我的列表,在我的地图上为每个位置的坐标制作图钉。 我尝试使用Map.Children属性但没有成功......

2 个答案:

答案 0 :(得分:3)

好的,我在xaml中找到了它,我使用了MapItemsControl属性:

<m:Map x:Name="myMap" CredentialsProvider="blabla" ZoomLevel="12" Mode="Road">
                <m:MapItemsControl ItemsSource="{Binding places}">
                    <m:MapItemsControl.ItemTemplate>
                        <DataTemplate>
                            <m:Pushpin Location="{Binding position.location}"/>
                        </DataTemplate>
                    </m:MapItemsControl.ItemTemplate>
                </m:MapItemsControl>                    
            </m:Map>

我在GeoCoordinate类中添加了location属性:

    public class GeoCoordinate
{
    public double latitude { get; set; }
    public double longitude { get; set; }
    public double altitude { get; set; }

    public Location location { get { return new Location(latitude, longitude, altitude); } }

}

答案 1 :(得分:2)

我建议您查看MSDN上的“入门”部分,以便了解使用特定和专用类的基础知识:http://msdn.microsoft.com/en-us/library/hh830431.aspx

要在地图控件上添加图钉元素,您需要使用Pushpin类,请参阅:  http://msdn.microsoft.com/en-us/library/microsoft.maps.mapcontrol.wpf.pushpin.aspx

在使用中它是这样的:

 // The pushpin to add to the map.
 Pushpin pin = new Pushpin();
 pin.Location = pinLocation;

 // Adds the pushpin to the map.
 myMap.Children.Add(pin);

有关如何开始使用图钉的更多信息: http://msdn.microsoft.com/en-us/library/hh709044.aspx