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

本文关键字:列表 获取 绑定 | 更新日期: 2023-09-27 17:59:03

你好,我正在WPF应用程序中使用Bing地图

我的页面包含一张地图。

我页面的dataContext包含地点列表这些地方有地理位置:

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属性,但没有成功。。。

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

好的,我在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类中添加了位置属性:

    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); } }
}

我建议您查看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