UWP:刷新 MapElementsLayer

UWP: Refresh MapElementsLayer

我使用以下方法在我的 MapControl 上定义了一个 MapLayer:

<maps:MapControl x:Name=“MyMap”
[…]
Layers=“{x:Bind ViewModel.Layers}”>

我定义了一个 MapElementsLayer 并将其添加到我的 MapLayer。

我现在以编程方式创建元素并将它们添加到我的 MapElementsLayer。我的问题是,当我添加新元素或删除已经存在的元素时,它们不会 draw/clear 在地图上。我能够让它们更新的唯一方法是删除地图层,然后重新添加它。这个过程是资源密集型的,每次都会暂停 UI 线程数秒。

有没有办法更新MapLayer/MapElementsLayer的内容并触发重绘?我已经搜索了文档,但找不到触发重绘的方法。

谢谢, 约翰

根据你的描述,你可以使用List插入Layers,如果你想通过删除源数据来更新图层,请使用ObservableCollection to replace List that could represent a dynamic data collection that provides notifications when items get added, removed, or when the whole list is refreshed. For more please refer to this document

public ObservableCollection<MapLayer> LandmarkLayer
    { get; } = new ObservableCollection<MapLayer>();