我有一个MapLayer定义在我的MapControl使用如下:
<maps:MapControl x:Name=“MyMap”
[…]
Layers=“{x:Bind ViewModel.Layers}”>
我定义了一个MapElementsLayer并将它添加到我的MapLayer中。
我现在以编程方式创建元素并将它们添加到我的MapElementsLayer。我的问题是,当我添加新元素或删除已经存在的元素时,它们不会在地图上绘制/清除。我唯一能够让它们更新的方法是删除地图层,然后重新添加。这个进程是资源密集型的,并且每次都会暂停UI线程数秒。
是否有更新MapLayer/MapElementsLayer的内容并触发重绘?我已经搜索了文档,找不到触发重绘的方法。
谢谢,约翰。
根据你的描述,你可以使用List
来插入Layers
,如果你想通过删除源数据来更新层,请使用use ObservableCollection来替换List,它可以代表一个动态的数据集合,当项目被添加、删除或整个列表被刷新时提供通知。详情请参阅本文件。
public ObservableCollection<MapLayer> LandmarkLayer
{ get; } = new ObservableCollection<MapLayer>();