public void Dispose() { if (undoStack != null) foreach (IAction action in undoStack) action.Dispose(); undoStack = null; if (redoStack != null) foreach (IAction action in redoStack) action.Dispose(); redoStack = null; }