Thanks, I understand now.
I had a closer look at the Undo Framework example, and their AddCommand's redo and undo methods just added/removed the item from the scene, whereas in my case, redo and undo actually created and deleted the item (AddNewItem's constructor stored all of the necessary info to re-create the item after it was deleted). So I'll do what you suggested, and change the redo and undo functions.
Bookmarks