我创建了一个包含一系列内容控件的Word 2013文档。我在标题中有一堆文本控件,然后是一个具有重复内容控件和更多文本控件的表
我想要实现的是通过我的C#程序构建一些XML,我可以使用它来映射到我的内容控件。
我的XML看起来像这样
<Job>
<JobNo>123</JobNo>
<Staff>Chris Smith</Staff>
<Client>Client 2</Client>
<DateReceived>2015-05-08</DateReceived>
<SampleNo>3</SampleNo>
<Department>Product</Department>
<Status>Open</Status>
<JobSamples>
<Sample>
<SampleNo>1</SampleNo>
<SampleIdentification>Identifier</SampleIdentification>
<AnalyticalTest>AnalyticalTest</AnalyticalTest>
<SampleMatrix>SampleMatrix</SampleMatrix>
<TypeOfTest>TypeOfTest</TypeOfTest>
<SampleStaff>SampleStaff</SampleStaff>
<SampleDueDate>SampleDueDate</SampleDueDate>
</Sample>
<Sample>
<SampleNo>2</SampleNo>
<SampleIdentification>Identifier</SampleIdentification>
<AnalyticalTest>AnalyticalTest</AnalyticalTest>
<SampleMatrix>SampleMatrix</SampleMatrix>
<TypeOfTest>TypeOfTest</TypeOfTest>
<SampleStaff>SampleStaff</SampleStaff>
<SampleDueDate>SampleDueDate</SampleDueDate>
</Sample>
</JobSamples>
</Job>
我创建了一个包含自定义XML部分并且已正确映射字段的单词模板。我的RepeatingContentControl已映射到节点并正确显示两行Samples数据
但是在运行时我的XML可能包含1 .... N个样本,所以我希望重复内容控制能够正确刷新
当我运行我的代码时,重复内容控件之外的所有其他控件都会刷新,但重复控件不会。
我是否需要处理代码中的重复内容控件并相应地添加或删除行?
如果是的话,我该怎么做?
如果没有,我怎样才能让我的重复控件刷新?
这是我的代码: -
var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Job Sheet.docx");
using (WordprocessingDocument myDoc = WordprocessingDocument.Open(path, true))
{
// Creates and saves JobXML file
CreateCustomXML(job);
XmlDocument doc = new XmlDocument();
doc.Load(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "JobXML.xml"));
MainDocumentPart mainPart = myDoc.MainDocumentPart;
//delete old xml part
mainPart.DeleteParts<CustomXmlPart>(mainPart.CustomXmlParts);
//add new xml part
CustomXmlPart customXml = mainPart.AddCustomXmlPart(CustomXmlPartType.CustomXml);
using (StreamWriter ts = new StreamWriter(customXml.GetStream()))
{
ts.Write(doc.OuterXml);
}
}