private void DeActivateModification()
 {
     if (_activeMapViewChangedEvent != null || _onRowChangedEvent != null || _onRowCreatedEvent != null || _onRowPointCreatedEvent != null)
     {
         UpdateStatusText($@"DeActivate Modification");
         if (_activeMapViewChangedEvent != null)
         {
             ActiveMapViewChangedEvent.Unsubscribe(_activeMapViewChangedEvent);
         }
         QueuedTask.Run(() =>
         {
             if (_onRowChangedEvent != null)
             {
                 RowChangedEvent.Unsubscribe(_onRowChangedEvent);
             }
             if (_onRowCreatedEvent != null)
             {
                 RowChangedEvent.Unsubscribe(_onRowCreatedEvent);
             }
             if (_onRowPointCreatedEvent != null)
             {
                 RowChangedEvent.Unsubscribe(_onRowPointCreatedEvent);
             }
         });
         _onRowChangedEvent         = null;
         _onRowCreatedEvent         = null;
         _onRowPointCreatedEvent    = null;
         _activeMapViewChangedEvent = null;
     }
 }
 /// <summary>
 /// Waiting for the active map view to change in order to setup event listening
 /// </summary>
 /// <param name="args"></param>
 private void OnActiveMapViewChangedEvent(ActiveMapViewChangedEventArgs args)
 {
     if (args.IncomingView != null)
     {
         SetUpRowEventListener(args.IncomingView, PolygonLayerName, PointLayerName);
         ActiveMapViewChangedEvent.Unsubscribe(_activeMapViewChangedEvent);
         _activeMapViewChangedEvent = null;
     }
 }
 /// <summary>
 /// Uninitialize Active Map View Changed
 /// </summary>
 protected override void Uninitialize()
 {
     ActiveMapViewChangedEvent.Unsubscribe(OnActiveMapViewChanged);
     base.Uninitialize();
 }