// Re-orders the selected layers private void orderSelectedLayers() { List <FeatureLayer> preSortLayers = SelectedLayers.ToList(); SelectedLayers.Clear(); foreach (FeatureLayer fLayer in AvailableLayers) { if (preSortLayers.Contains(fLayer)) { SelectedLayers.Add(fLayer); } } OnPropertyChanged("SelectedLayers"); }
// Initializes the available layers based on the parent service and clears the selected layers private void initializeLayers() { AvailableLayers.Clear(); SelectedLayers.Clear(); // Make sure the service is a type that contains sublayers if (!(Service is FeatureService) && !(Service is MapService)) { return; // Other service types don't have sublayers } // Loop through each sublayer in the service dynamic serviceAsDynamic = Service; foreach (FeatureLayerDescription layer in serviceAsDynamic.Layers) { // Create a feature layer for the sublayer string id = Guid.NewGuid().ToString("N"); FeatureLayer fLayer = new FeatureLayer() { Url = string.Format("{0}/{1}", Service.Url, layer.Id), OutFields = new OutFields() { "*" }, ProxyUrl = ProxyUrl, ID = id }; // Initialize the layer's name string name = !string.IsNullOrEmpty(layer.Name) ? layer.Name : id; MapApplication.SetLayerName(fLayer, name); // Add the layer to the set of available layers AvailableLayers.Add(fLayer); } }