private void RemoveLayer(ILayer layer) { if (layer == null) { return; } var grp = layer as IMapGroup; if (grp != null) { // handle layerRemoved event separately for groups because map.layerRemoved event doesn't fire for groups. grp.LayerAdded -= MapLayerAdded; grp.LayerRemoved -= MapLayerRemoved; foreach (IMapLayer l in grp.Layers) { RemoveLayer(l); } } else { _dgvSelection.RemoveLayer(layer); } }
/// <summary> /// Removes the layer, that was removed from map from the DGV_Selection. /// </summary> /// <param name="sender">Sender that raised the event.</param> /// <param name="e">The event args.</param> private void MapLayerRemoved(object sender, LayerEventArgs e) { _dgvSelection.RemoveLayer(e.Layer); }