我在UWP MapControl上显示几种不同类型的MapElements,并在用户使用地图时定期更新它们的位置,大小等。目前我在代码中完成所有这些工作。我想找到一种方便的方法来绑定多个不同的MapElements集合,因为那时我需要维护的代码更少。
随着Creator的降级更新16299微软已经添加了MapElementsLayer class,,它似乎是完美的工作,但我无法让它工作。 当我将它绑定到MapElement3D的ObservableCollection时,我看不到它们中的任何一个出现在地图上。我究竟做错了什么?
<Maps:MapControl
x:Name="MainMap"
MapProjection="Globe"
ZoomLevel="15.5"
<Maps:MapElementsLayer x:Name="Cars" MapElements="{x:Bind _VehicleCollection, Mode=OneWay}" />
</Maps:MapControl>
答案 0 :(得分:3)
我想找到一种方便的方法来绑定多个不同的MapElements集合,因为那时我需要维护更少的代码。
如前所述,地图分层API可以帮助表示可以绑定数据的地图数据集合。与现有的MapControl.MapElements
API不同,它可以用于独立操作元素组作为一个单元或指定一个联合目的。
但您需要使用 MapControl.Layers
将数据集合绑定到地图。这是您使用MapElements
集合无法做到的事情。有关地图分层API以及如何操作的更多详细信息,请参阅Working with layers。例如:
<Maps:MapControl
x:Name="myMap"
Layers="{x:Bind ViewModel.LandmarkLayer}"
MapProjection="Globe"
MapServiceToken="Your token" />
您需要将图层集合绑定到MapControl.Layers
属性。