// Called when the visibility of the DockPane changes. protected override void OnShow(bool isVisible) { if (isVisible && _eventToken == null) //Subscribe to event when dockpane is visible { _eventToken = MapSelectionChangedEvent.Subscribe(OnMapSelectionChangedEvent); _toceventToken = TOCSelectionChangedEvent.Subscribe(OnTOCSelectionChangeEvent); } if (!isVisible && _eventToken != null) //Unsubscribe as the dockpane closes. { MapSelectionChangedEvent.Unsubscribe(_eventToken); TOCSelectionChangedEvent.Unsubscribe(_toceventToken); _eventToken = null; } }
private async void OnMapClosed(MapClosedEventArgs args) { LayersAddedEvent.Unsubscribe(OnLayersAdded); LayersMovedEvent.Unsubscribe(OnLayersMoved); LayersRemovedEvent.Unsubscribe(OnLayersRemoved); MapMemberPropertiesChangedEvent.Unsubscribe(OnMapMemberPropertiesChanged); TOCSelectionChangedEvent.Unsubscribe(OnTocSelectionChanged); ActiveToolChangedEvent.Unsubscribe(OnActiveToolChangedEvent); EditCompletedEvent.Unsubscribe(OnEditCompleted); DrawCompleteEvent.Unsubscribe(OnDrawCompleted); DrawStartedEvent.Unsubscribe(OnDrawStarted); while (Count >= 1) { VectorLayer vectorLayer = this[0]; await RemoveLayer(vectorLayer); } }