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
,
Теги присутствуют на презентации и на слайдах, поэтому оба моих сценария описаны.