无法删除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);
我有一个异常,出现强制转换错误。
有人能帮我吗?
致问候,
在调用remove方法之前,使用断点检查来查看polygonToDelete对象的值是多少。它是单个形状还是多个形状的集合?我怀疑它是一个形状的集合,你需要抓住第一个,或者将你的对象转换为列表,循环浏览每个项目并将其从地图中删除。
试试这样的东西:
var polygonToDelete = MyMap.Children.OfType<MapPolygon>()
.Where(p => ((MapPolygon)p).Tag == "Circle").ToList();
foreach (var p in polygonToDelete)
{
MyMap.Children.Remove(p);
}