无法删除bing Map Wpf控件上的多边形,引发异常

本文关键字:多边形 异常 控件 删除 bing Map Wpf | 更新日期: 2023-09-27 17:59:09

我正在使用bing-map-wpf控件。

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

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

这样,我的多边形就可以正确显示了。

现在,我想删除这个多边形(我可以有几个多边形,这就是为什么我使用标签:"圆圈"),我尝试了这个:

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

我有一个异常,出现强制转换错误。

有人能帮我吗?

致问候,

无法删除bing Map Wpf控件上的多边形,引发异常

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

试试这样的东西:

var polygonToDelete = MyMap.Children.OfType<MapPolygon>()
                    .Where(p => ((MapPolygon)p).Tag == "Circle").ToList();
foreach (var p in polygonToDelete)
{
    MyMap.Children.Remove(p);
}