I have encountered what appears to be a bug in ArcGIS Pro 3.1.1 using the C# Pro SDK. I initially developed a method to remove unwanted operations from the OperationsManager undo/redo stack in version 2.9 of Pro, which worked perfectly. I was able to call the method whenever I wanted to, passing it an operation name, and it would remove it from the undo/redo stack. However, I have since upgraded my code to 3.X (currently 3.1.1) and the method no longer functions. It does not error. It just simply does nothing. Operations that I have requested to be removed are maintained, no matter what I do. Has there been a breaking change from 2.X to 3.X that has caused this behavior. The following is my method that used to work:
public static void RemoveUndoOperations(string opName)
{
if (MapView.Active?.Map == null) { return; }
QueuedTask.Run(async () =>
{
await Application.Current.Dispatcher.BeginInvoke(new Action(() =>
{
OperationManager opManager = MapView.Active.Map.OperationManager;
List<Operation> ops = opManager.FindUndoOperations(o => o.Name.Contains(opName));
ops.ForEach(op => opManager.RemoveRedoOperation(op));
}), DispatcherPriority.ApplicationIdle);
});
}
NOTE: Removing the async QueuedTask and the Application.Current.Dispactcher.BeginInvoke does not make a difference. I have tried this, just for testing purposes, and it doesn't change things. The code still does not work. Nothing is removed from the undo/redo stack, no matter what I try. Once again, there are no errors. The code just fails to do anything. Any thoughts? Is this a new bug?