以编程方式编辑文本时删除内容控件

时间:2015-09-02 11:31:22

标签: c# openxml-sdk

根据MSDN(强调我的):

  

如果Temporary属性为true,则当用户键入控件时 ContentControl会自动删除,或者当控件中的文本以编程方式更改时 。当ContentControl自动从文档中删除时,控件中的文本仍保留在文档中。

它适用于“当用户键入控件时”使用Word编辑器,但不适用于我在(C#)代码中更改文本时。我的代码如下。

  1. 制作临时标签

    static void MakeTagsTemporary(List<Tag> tagList)
    {
        tagList.ForEach(x => x.Parent.Append(new TemporarySdt() { Val = true }));
    } mainPart.Document.Save();
    

    我专门保存以接受内容控制临时更改,但没有效果。

  2. 编辑文字

    static void ApplyProductGrid(MainDocumentPart mainPart, Plan pl, List<Tag> tagList)
    {
        foreach (Tag tagitem in tagList)
        {
            string GridValue = pl.FormattedTags.Where(x => x.Key == tagitem.Val).Select(x => x.Value).FirstOrDefault();
            tagitem.Parent.Parent.Descendants<Text>().FirstOrDefault().Text = GridValue;
        }
    }
    
  3. tagitem.Parent.Parent.Descendants<Text>().FirstOrDefault().Text = GridValue;行正在执行其工作,它更新了值,但未删除内容控制。

    当我从单词编辑内容时,Content Control将被删除。

0 个答案:

没有答案