我需要将ArcGIS Runtime SDK for .NETMap
中的ArcGIS 绑定到视图模型,该视图模型提供了一组自定义模型,这些模型代表各个 ArcGIS的数据(用于序列化目的)。现在,由于 ArcGIS 对 MVVM 并不真正友好(大多数“控件”只是s,没有数据上下文或不支持模板),我最初的想法是将其包装在一个自定义控件中,该控件派生自我绑定到我的自定义类型然后选择适合包含正在渲染到地图中的 ArcGIS 的类型。像这样的东西:Layer
DependencyObject
MapView
ItemsControl
DataTemplate
Layer
<local:MapViewAdapter ItemsSource="{Binding MyCustomTypes}">
<local:MapViewAdapter.Resources>
<DataTemplate DataType="{x:Type ArcGISDrawLayer}">
<GraphicsLayer GraphicsSource="{Binding LayerGraphics}" />
</DataTemplate>
...
</local:MapViewAdapter.Resources>
</local:MapViewAdapter>
应该在MapViewAdapter
内部创建一个新MapView
的Map
,然后将指定DataTemplate
的 s渲染LayerCollection
到Map
.
但是,我不知道如何在不重新实现大多数 ArcGIS 控件的情况下完成此操作。有任何想法吗?