我正在尝试使用VSTO(C#插件)在Visio中对页面重新排序。下面的代码执行此操作。 “ pageList”是Visio Page对象的Linq列表。 “ movement”变量告诉循环将列表中页面的索引位置移动多少次。 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);
}
运行此命令时,它将正确执行索引编制。我下面的示例显示页面“ Women 144”位于索引5(原为索引16)。因此在外观上看起来不错。但是,当我保存Visio,将其关闭并重新打开文档时,由于某些原因,页面“ Women 144”现在位于索引9。有什么我想念的吗?为什么以前好,但现在不好?