Esri.ArcGISRuntime.Toolkit.Controls.LegendTree.UpdateMapLayerItemsRecursive C# (CSharp) Method

UpdateMapLayerItemsRecursive() private method

private UpdateMapLayerItemsRecursive ( ObservableCollection mapLayerItems, IEnumerable layers ) : void
mapLayerItems ObservableCollection
layers IEnumerable
return void
        private void UpdateMapLayerItemsRecursive(ObservableCollection<LayerItemViewModel> mapLayerItems, IEnumerable<Layer> layers)
        {
            foreach (Layer layer in layers.Where(l => l.ShowLegend))
            {
                MapLayerItem mapLayerItem = FindMapLayerItem(layer);

                if (mapLayerItem == null) // else reuse existing map layer item to avoid query again the legend and to keep the current state (selected, expansed, ..)
                {
                    // Create a new map layer item
                    mapLayerItem = new MapLayerItem(layer) { LegendTree = this };
                    mapLayerItem.Refresh();
                }

                mapLayerItems.Add(mapLayerItem);
                if(layer is GroupLayer)
                    UpdateMapLayerItemsRecursive(mapLayerItems, (layer as GroupLayer).ChildLayers);
            }
        }