RemoveLayers Method (Map)
Removes the specified layers from the map.
This method must be called on the MCT. Use QueuedTask.Run.
Removes all layers that are unchecked
var map = MapView.Active.Map;
if (map == null)
return;
//Get the group layers first
IReadOnlyList<GroupLayer> groupLayers = map.Layers.OfType<GroupLayer>().ToList();
//Iterate and remove the layers within the group layers that are unchecked.
foreach (var groupLayer in groupLayers)
{
//Get layers that not visible within the group
var layers = groupLayer.Layers.Where(l => l.IsVisible == false).ToList();
//Remove all the layers that are not visible within the group
await QueuedTask.Run(() => map.RemoveLayers(layers));
}
//Group Layers that are empty and are unchecked
foreach (var group in groupLayers)
{
if (group.Layers.Count == 0 && group.IsVisible == false) //No layers in the group
{
//remove the group
await QueuedTask.Run(() => map.RemoveLayer(group));
}
}
//Get Layers that are NOT Group layers and are unchecked
var notAGroupAndUnCheckedLayers = map.Layers.Where(l => !(l is GroupLayer) && l.IsVisible == false).ToList();
//Remove all the non group layers that are not visible
await QueuedTask.Run(() => map.RemoveLayers(notAGroupAndUnCheckedLayers));
Target Platforms: Windows 11, Windows 10
ArcGIS Pro version: 3 or higher.