Visio не будет сохранять изменения, когда я переупорядочиваю страницы в C # - PullRequest
1 голос
/ 29 марта 2019

Я пытаюсь изменить порядок страниц в Visio с помощью VSTO (C # addin). Код ниже делает это. "PageList" - это список Linq объектов Visio Page. Переменная «движение» сообщает циклу, сколько раз нужно переместить позицию индекса страницы в списке. Метод Move принимает список, индекс элемента, который я хочу переместить, и направление. Метод Move перемещает его на 1 вверх или вниз.

for (int i = 1; i <= movement; i++)
{
    int listIndex = pageList.FindIndex(x => x == page);
    Converter.Move(pageList,listIndex,moveDirection);
}

Далее, после того, как я перебираю страницы в списке, я изменяю их фактический индекс в Visio в соответствии с позицией, в которой они находятся. Индексирование Visio начинается с 1 вместо 0.

for (int i = pageList.Count - 1; i >= 0; i--)
{
    pageList[i].Index = (short)(i + 1);
}

Когда я запускаю это, он выполняет индексацию правильно. Приведенный ниже пример показывает, что страница «Женщины 144» имеет индекс 5 (изначально она была индексом 16). Так визуально это выглядит хорошо. Но когда я сохраняю Visio, закрываю его и снова открываю документ, страница «Женщины 144» по какой-то причине теперь находится в индексе 9. Я что-то упускаю? Почему раньше было хорошо, а сейчас нет?

visio

...