<esri:FeatureLayer ID="Points of Interest" Where="type ='2'" Url="http://sampleserver3.arcgisonline.com/ArcGIS/rest/services/Fire/Sheep/MapServer/0" />
well I tried the above code but it does not seem to work.. can you please be a little more elaborate
if (e.LayerItem.Layer.ID == "Districtsfl" && e.LayerItem.LegendItems != null) { var legendItemsToDelete = e.LayerItem.LegendItems.Where(item => item.Label != "Districtsfl").ToList(); foreach(var item in legendItemsToDelete) if (item.Label != "Bagalkot") { e.LayerItem.LegendItems.Remove(item); } }
The legend of a FeatureLayer doesn't contain any sub layers ==> we get the legend items (swatch+label) directly from the map layer item.So your code should be something like: if (e.LayerItem.Layer.ID ="Points of Interest" && e.LayerItem.LegendItems != null) { var legendItemsToDelete = e.LayerItem.LegendItems.Where(item => item.Label != "WEBRIS.SPL_ROADS").ToList(); foreach(item in legendItemsToDelete) e.LayerItem.LegendItems.Remove(item); }
if (e.LayerItem.Layer.ID ="Points of Interest" && e.LayerItem.LegendItems != null) { var legendItemsToDelete = e.LayerItem.LegendItems.Where(item => item.Label != "WEBRIS.SPL_ROADS").ToList(); foreach(item in legendItemsToDelete) e.LayerItem.LegendItems.Remove(item); }
The legend is not taking care of the current 'Where' clause.You can do this by code.Hook up an handler to the 'Refreshed' legend event and in this handler remove the legend items you don't want to see in the legend control.
ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel removeLayerItemVM = null; if (e.LayerItem.LayerItems != null) { foreach (ESRI.ArcGIS.Client.Toolkit.Primitives.LayerItemViewModel layerItemVM in e.LayerItem.LayerItems) { //if (layerItemVM.LegendItems != null && layerItemVM.LegendItems.Any()) // layerItemVM.ImageSource = layerItemVM.LegendItems.First().ImageSource; e.LayerItem.LayerItems.Remove(removeLayerItemVM); if (layerItemVM.IsExpanded) layerItemVM.IsExpanded = false; if (layerItemVM.Label != "WEBRIS.SPL_ROADS") removeLayerItemVM = layerItemVM; } if (removeLayerItemVM != null) e.LayerItem.LayerItems.Remove(removeLayerItemVM); } else { e.LayerItem.IsExpanded = false; }
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.