SuperMap.Connector.Control.Forms.MapControl.item_MarkCollectionChanged C# (CSharp) Method

item_MarkCollectionChanged() public method

public item_MarkCollectionChanged ( object sender, System e ) : void
sender object
e System
return void
        void item_MarkCollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            GraphicsLayer graphicsLayer = sender as GraphicsLayer;
            if (graphicsLayer != null && _layerMapOverlay.ContainsKey(graphicsLayer.ID))
            {
                GMapOverlay overlay = _layerMapOverlay[graphicsLayer.ID].GMapOverlay;
                if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add && e.NewItems != null)
                {
                    List<Marker> markers = new List<Marker>();
                    foreach (Marker item in e.NewItems)
                    {
                        markers.Add(item);
                    }
                    this.AddMarker(graphicsLayer, overlay, markers);
                }
                else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Remove && e.OldItems != null)
                {
                    foreach (Marker item in e.OldItems)
                    {
                        if (item != null)
                        {
                            overlay.Markers.Remove(_markerMapGMapMarker[graphicsLayer.ID][item.ID].GMapMarker);
                            _markerMapGMapMarker[graphicsLayer.ID].Remove(item.ID);
                        }
                    }
                }
                else if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Reset)
                {
                    overlay.Markers.Clear();
                    if (_markerMapGMapMarker.ContainsKey(graphicsLayer.ID))
                    {
                        _markerMapGMapMarker[graphicsLayer.ID].Clear();
                    }
                }
            }
        }