Bing地图路线多边形线无法从地图中删除

时间:2011-05-14 15:09:36

标签: c# .net windows-phone-7 bing-maps

我有以下xaml将类LocationCollection的实例绑定到类MapPolyline的实例。

 <Microsoft_Phone_Controls_Maps:MapPolyline Stroke="Green"
                                            Locations="{Binding Points}"
                                            StrokeThickness="6"
                                            Opacity="0.7" />

Points属性在ViewModel中定义为:

public LocationCollection Points
{
    get
    {
        return this.points;
    }
    set
    {
        this.SetPropertyAndNotify(ref this.points, value, "Points");
    }
}

现在,当我设置Points属性时,路线显示为预期,但是当我想删除具有以下代码的行时,仍会显示该行 - 即使我创建了一个新的空{{ 1}}类并通知属性已更改。

任何人都知道为什么不删除路线?

LocationCollection

2 个答案:

答案 0 :(得分:0)

答案是将集合设置为新实例或完全清除当前集合是错误的,我要做的就是从集合中删除除第一项之外的所有项目。

e.g。

private void ResetPoints()
{
    if (this.Points.Count() > 0)
    {
        var firstPoint = this.Points.First();
        this.Points.Clear();
        this.Points.Add(firstPoint);
    }
}

答案 1 :(得分:0)

使用此

创建路径图层
MapLayer route_layer = new MapLayer();

使用MapPolyline创建行,例如

MapPolyline routeLine = new MapPolyline()
        {
            Locations = locs,
            Stroke = new SolidColorBrush(c),
            StrokeThickness = 5
        };

添加到路径图层,然后使用此

进行映射
route_layer.Children.Add(routeLine);
MyMap.Children.Add(route_layer);
使用此功能

从地图中移除

MyMap.Children.Remove(route_layer);