protected virtual void OnOverlayChanged(OverlayChangedOverlaySwitcherEventArgs e)
 {
     EventHandler<OverlayChangedOverlaySwitcherEventArgs> handler = OverlayChanged;
     if (handler != null)
     {
         handler(this, e);
     }
 }
 private void ChangeBaseOverlay(OverlayItem item)
 {
     if (IsLoaded)
     {
         OverlayChangedOverlaySwitcherEventArgs overlaySwitchedEventArgs = new OverlayChangedOverlaySwitcherEventArgs(item.Overlay);
         OnOverlayChanged(overlaySwitchedEventArgs);
         if (overlaySwitchedEventArgs.Cancel)
         {
             item.IsVisible = false;
         }
         else
         {
             foreach (Overlay overlay in CurrentMap.Overlays.Where(o => o.IsBase))
             {
                 overlay.IsVisible = item.Overlay == overlay;
             }
             CurrentMap.Refresh();
         }
     }
 }