无法删除bing Map Wpf控件上的多边形,强制转换异常

时间:2014-04-21 16:34:08

标签: c# wpf bing-api bing-maps

我正在使用bing map wpf控件。

我添加了一些这样的多边形:

        polygon.Locations = DrawACircle(oLoc, dRadius);
        polygon.Tag = "Circle";
        MyMapUserControl.MyMap.Children.Add(polygon);

这样,我的多边形就能正确显示。

现在,我想删除这个多边形(我可以有几个多边形,这就是我使用标签的原因:“Circle”),我试过这个:

var polygonToDelete = MyMapUserControl.MyMap
                              .Children
                              .OfType<MapPolygon>()
                              .Where(p => ((MapPolygon)p).Tag == "Circle");

MyMapUserControl.MyMap.Children.Remove((UIElement)polygonToDelete);

我有一个抛出错误的例外。

有人请帮帮我吗?

致以最诚挚的问候,

1 个答案:

答案 0 :(得分:1)

在调用remove方法之前,使用断点检查来查看polygonToDelete对象的值。它是单个形状还是形状集合?我怀疑它是一组形状,你需要抓住第一个,或者将你的对象转换为List并遍历每个项目并将其从地图中删除。

尝试这样的事情:

var polygonToDelete = MyMap.Children.OfType<MapPolygon>()
                    .Where(p => ((MapPolygon)p).Tag == "Circle").ToList();

foreach (var p in polygonToDelete)
{
    MyMap.Children.Remove(p);
}