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;
}