PowerPoint 2013 VSTO Отмена и восстановление манипуляции с данными клиента или CustomXMLPart

Я создаю надстройку PowerPoint VSTO, где храню много метаданных в презентации.

В настоящее время я храню его как XML как манипулирование AddIn.Application.ActivePresentation.CustomXMLParts для глобальных данных и Slide.CustomerData для конкретной информации слайда.

Проблема в том, что ни один из них не представлен в стеке Undo/Redo. Я могу внести в презентацию пять с половиной миллионов изменений и изменить где-то посередине свой пользовательский XML-код, отменить все и по-прежнему читать XML-код, который я установил последним.

Поскольку я хочу, чтобы мои модификации были отменены / возвращены, лучшее, что я мог придумать, - это сохранить XML в Shape и удалить + воссоздать его при каждой модификации. Проблема заключается в том, что пользователь может удалить форму или слайд, на котором сохранена форма.

Мне нужно что-то менее видимое (для предотвращения случайного удаления) и - предпочтительно глобальный - объект в презентации, в котором я могу сохранить свой XML-файл, который можно удалить / восстановить, и который изменяет этот стек отмены / восстановления.

Есть ли что-то подобное?

Или есть лучший способ сделать это?

1 ответ

Чтобы ответить на мой собственный вопрос:

Есть теги!

Когда вы добавляете что-то к этому с Tags.Add("Name", "Value") это правильно, в отличие от CustomerData или же CustomXMLParts,

Теги присутствуют на презентации и на слайдах, поэтому оба моих сценария описаны.

Другие вопросы по тегам