/// <summary> /// Attach an event tracker to the current map view model /// </summary> private void AttachMap() { var mapViewModel = MapViewModel; if (mapViewModel != null) { _activeEventTracker = new MapPopupMenuEventTracker(this); mapViewModel.InteractionHandler.EventTrackers.Add(_activeEventTracker); mapViewModel.PropertyChanged += MapViewModelPropertyChanged; mapViewModel.TrailLayer.Drawing.ContentsChanged += TrailLayerContentChanged; } }
/// <summary> /// Detach the active map event tracker /// </summary> private void DetachMap() { var tracker = _activeEventTracker; var mapViewModel = MapViewModel; _activeEventTracker = null; if (tracker != null && mapViewModel != null) { mapViewModel.InteractionHandler.EventTrackers.Remove(tracker); mapViewModel.PropertyChanged -= MapViewModelPropertyChanged; mapViewModel.TrailLayer.Drawing.ContentsChanged -= TrailLayerContentChanged; } }