如何从 Bing 地图中删除所有现有图钉?

问题描述

几年前使用不同版本/风格的 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”时,我得到了这个:

enter image description here

我需要做什么?

解决方法

这取决于您如何添加图钉。您需要从添加它们的同一个 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();

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...