我有以下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
答案 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);