问题描述
几年前使用不同版本/风格的 Bing 地图,我提出了同样的问题并最终自行发布了答案,here。
但这不适用于我使用 WPF 控件的 Winforms 应用程序。使用此代码:
var mapLayerChildren = from c in DataLayer.Children select c;
var kinderGarten = mapLayerChildren.ToArray();
for (int i = 0; i < kinderGarten.Count(); i++)
{
if (kinderGarten[i] is pushpin)
{
DataLayer.Children.Remove(kinderGarten[i]);
}
}
...DataLayer 无法识别。
当我尝试用“userControl11.myMap.Children”替换“DataLayer”时,我得到了这个:
我需要做什么?
解决方法
这取决于您如何添加图钉。您需要从添加它们的同一个 Children
集合中删除它们。
假设您已将图钉直接添加到地图的 Children
集合中,那么您可以像这样找到所有图钉并删除它们:
var map = this.userControl11.myMap;
map.Children.OfType<Pushpin>().ToList().ForEach(pin => {
map.Children.Remove(pin);
});
或者删除地图的所有子项,包括图钉、形状、图层等,您可以使用:
var map = this.userControl11.myMap;
map.Children.Clear();