ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Editing.Events Namespace / RowDeletedEvent Class
Members Example Version

RowDeletedEvent Class
Occurs when a Row is deleted.
Object Model
RowDeletedEvent ClassSubscriptionToken Class
Syntax
public static class RowDeletedEvent 
Remarks
The RowDeletedEvent is published during the execution of the edit operation. Any modifications performed within the RowEvent handler can cause cascaded events to be generated. Make sure you have an exit condition to avoid infinite recursion. For example, if you are changing a feature attribute within a RowCreatedEvent or RowChangedEvent, consider tracking that feature's objectID to ignore the corresponding RowChangedEvent your attribute change will generate.

If you need to edit additional tables within the RowEvent you MUST use the ArcGIS.Core.Data API to edit the tables directly. Do NOT use a new edit operation to create or modify features or rows in your RowEvent callback.

Example
Subscribe to Row Events
protected void SubscribeRowEvent()
{
  QueuedTask.Run(() =>
  {
    //Listen for row events on a layer
    var featLayer = MapView.Active.GetSelectedLayers().First() as FeatureLayer;
    var layerTable = featLayer.GetTable();

    //subscribe to row events
    var rowCreateToken = RowCreatedEvent.Subscribe(OnRowCreated, layerTable);
    var rowChangeToken = RowChangedEvent.Subscribe(OnRowChanged, layerTable);
    var rowDeleteToken = RowDeletedEvent.Subscribe(OnRowDeleted, layerTable);
  });
}

protected void OnRowCreated(RowChangedEventArgs args)
{
}

protected void OnRowChanged(RowChangedEventArgs args)
{
}

protected void OnRowDeleted(RowChangedEventArgs args)
{
}
Cancel a delete
public void StopADelete()
{
  // subscribe to the RowDeletedEvent for the appropriate table
  Table table = MapView.Active.Map.GetLayersAsFlattenedList().OfType<FeatureLayer>().FirstOrDefault().GetTable();
  RowDeletedEvent.Subscribe(OnRowDeletedEvent, table);
}

private Guid _currentRowDeletedGuid = Guid.Empty;
private void OnRowDeletedEvent(RowChangedEventArgs args)
{
  // RowEvent callbacks are always called on the QueuedTask so there is no need 
  // to wrap your code within a QueuedTask.Run lambda.

  var row = args.Row;

  // check for re-entry 
  if (_currentRowDeletedGuid == args.Guid)
    return;

  // cancel the delete if the feature is in Police District 5
  var fldIdx = row.FindField("POLICE_DISTRICT");
  if (fldIdx != -1)
  {
    var value = row[fldIdx].ToString();
    if (value == "5")
    {
      //cancel with dialog
      // Note - feature edits on Hosted and Standard Feature Services cannot be cancelled.
      args.CancelEdit("Delete Event\nAre you sure", true);

      // or cancel without a dialog
      // args.CancelEdit();
    }
  }
  _currentRowDeletedGuid = args.Guid;
}
Inheritance Hierarchy

System.Object
   ArcGIS.Desktop.Editing.Events.RowDeletedEvent

Requirements

Target Platforms: Windows 11, Windows 10

ArcGIS Pro version: 3 or higher.
See Also