je dois lier un ArcGIS Map
de la ArcGIS Runtime SDK pour .NET à un modèle de vue qui offre une collection de modèles personnalisés qui représentent les données des différents ArcGIS Layer
s (utilisé à des fins de sérialisation). Maintenant, puisque ArcGIS n'est pas vraiment MVVM convivial (« contrôle » la plupart ne sont que DependencyObject
s, ont pas de contexte de données ou ne prennent pas en charge templating), mon idée initiale est d'envelopper le MapView
dans un contrôle personnalisé qui dérive de ItemsControl
que je lier à mes types personnalisés, puis sélectionner le DataTemplate
approprié pour le type qui contient un ArcGIS Layer
en cours de rendu dans la carte. Quelque chose comme ceci:Emballage ArcGIS Carte en ItemsControl (ItemsControlProxy)
<local:MapViewAdapter ItemsSource="{Binding MyCustomTypes}">
<local:MapViewAdapter.Resources>
<DataTemplate DataType="{x:Type ArcGISDrawLayer}">
<GraphicsLayer GraphicsSource="{Binding LayerGraphics}" />
</DataTemplate>
...
</local:MapViewAdapter.Resources>
</local:MapViewAdapter>
Le MapViewAdapter
devrait créer en interne une nouvelle MapView
avec elle est Map
puis rendre les spécifiées DataTemplate
s dans la LayerCollection
du Map
.
Cependant, je n'ai aucune idée de la façon de procéder sans ré-implémenter la plupart des contrôles ArcGIS. Des idées?