【问题标题】:UWP: Refresh MapElementsLayerUWP:刷新 MapElementsLayer
【发布时间】:2021-11-29 19:44:42
【问题描述】:

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

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

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

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

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

谢谢, 约翰

【问题讨论】:

  • 请尝试使用ObservableCollection替换List。
  • 谢谢!!我用 ObservableCollection 替换了列表,并使视图模型继承了 INotifyPropertyChanged 并且它现在可以工作了。

标签: uwp uwp-xaml uwp-maps


【解决方案1】:

根据您的描述,您可以使用List 插入Layers,如果您想通过删除源数据来更新图层,请使用ObservableCollection 替换可以表示动态数据集合的列表在添加、删除项目或刷新整个列表时提供通知。更多内容请参考document

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

【讨论】:

    猜你喜欢
    • 2018-12-28
    • 2019-10-25
    • 2020-09-23
    • 2017-01-12
    • 2016-11-27
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多