private void UpdateItems(GisEditorWpfMap map) { LegendImporterItems.Clear(); var featureLayers = map.GetFeatureLayers(true); foreach (var featureLayer in featureLayers) { LegendImporterItems.Add(GenerateLayerItem(featureLayer)); if (featureLayer.ZoomLevelSet.CustomZoomLevels.Count > 0) { var featureLayerListItem = GisEditor.LayerManager.GetLayerListItem(featureLayer); if (featureLayerListItem != null) { if (featureLayerListItem.Load != null) { featureLayerListItem.Load(); featureLayerListItem.Load = null; } foreach (var ComponentStyle in featureLayerListItem.Children) { if (ComponentStyle.Children.Count > 1) { LegendImporterItems.Add(GenerateComponentSytleItem(ComponentStyle)); GenerateImporterItems(ComponentStyle, LegendImporterItems, 2); } else { GenerateImporterItems(ComponentStyle, LegendImporterItems, 1); } } } } } }
public IEnumerable <LegendItemViewModel> CollectLegendItems() { foreach (LegendImporterItemViewModel item in LegendImporterItems.Where(tmpItem => ValidateLegendItem(tmpItem))) { LegendItemViewModel legendItem = new LegendItemViewModel { Text = item.Text, ImageStyle = item.Style, ImageWidth = iconSize, ImageHeight = iconSize, ImageLeftPadding = 5, TopPadding = 3, TextLeftPadding = 10, NotifiedGeoFont = new GeoFontViewModel { FontSize = 8, FontName = "Arial" }, }; yield return(legendItem); } }