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; }
Target Platforms: Windows 11, Windows 10