Construct a subclass inherited from GroupLayerClass, and construct a IGroupLayerEvent interface to monitor whether or not to add layers to the layer group.

    public delegate void IGroupLayerEvents_ItemAddedEventHandler(object Item);
    public delegate void IGroupLayerEvents_ItemDeletedEventHandler(object Item);

    public interface IGroupLayerEvents
    {
        event IGroupLayerEvents_ItemAddedEventHandler ItemAdded;
        event IGroupLayerEvents_ItemDeletedEventHandler ItemDeleted;
    }
    public class GroupLayerClassEx:GroupLayerClass,IGroupLayerEvents
    {
        public event IGroupLayerEvents_ItemAddedEventHandler ItemAdded;
        public event IGroupLayerEvents_ItemDeletedEventHandler ItemDeleted;

        public override void Add(ILayer layer)
        {
            base.Add(layer);
            if (ItemAdded != null)
            {
                ItemAdded(layer);
            }
        }

        public override void Clear()
        {
            if (ItemDeleted != null)
            {
                ICompositeLayer pCompositeLayer = this as ICompositeLayer;
                for (int i = 0; i < pCompositeLayer.Count; i++)
                {
                    ILayer pCurrentLayer = pCompositeLayer.get_Layer(i);
                    ItemDeleted(pCurrentLayer);
                }
            }
            base.Clear();
        }

        public override void Delete(ILayer Layer)
        {
            base.Delete(Layer);
            if (ItemDeleted != null)
            {
                ItemDeleted(Layer);
            }
        }
    }