Data binding OpenXML:使用绑定创建可重用的内容控件

Data binding OpenXML:使用绑定创建可重用的内容控件,data-binding,ms-word,openxml,word-contentcontrol,Data Binding,Ms Word,Openxml,Word Contentcontrol,我需要将特定的XML附加到word文档,以便元素显示在正确的位置。这是我可以用OpenXMLSDK完成的 问题是,我也希望能够定义已经绑定在某种模板中的内容控件,以便其他人可以创建xml将附加到的真正文档模板。好的,我不确定人们会理解我的意思,所以我会进一步解释 可能有许多不同的文档模板将使用相同的XML数据,因此使用相同的内容控件。由其他人创建文档 场景:一些不是程序员的家伙需要为通常的信息创建一个新的表单,因为一些更改(新的布局或其他)。这与保持不变的XML信息无关 “某个花花公子”的最佳解

我需要将特定的XML附加到word文档,以便元素显示在正确的位置。这是我可以用OpenXMLSDK完成的

问题是,我也希望能够定义已经绑定在某种模板中的内容控件,以便其他人可以创建xml将附加到的真正文档模板。好的,我不确定人们会理解我的意思,所以我会进一步解释

可能有许多不同的文档模板将使用相同的XML数据,因此使用相同的内容控件。由其他人创建文档

场景:一些不是程序员的家伙需要为通常的信息创建一个新的表单,因为一些更改(新的布局或其他)。这与保持不变的XML信息无关

“某个花花公子”的最佳解决方案是用Word创建文档,并将内容控件拖动到位(或类似的解决方案)。然后,当XML添加到文档中时,就没有问题了,因为内容控件是预绑定的

现在这里有几点:

1) 内容控件可以预绑定吗?如果路径上没有XML,它会不会保持为空而没有问题

2) 由于i4i诉讼,像这样将内容控件绑定到CustomXML在Word的未来版本中仍然有效吗

3) 有没有比这更好的最佳解决方案

提前谢谢

编辑:

更清楚地说。我不想创建内容控件,这些控件将有一些名称来标识它们和一个数据绑定xpath。然而在那一刻,道路上什么也没有

另一个用户进来创建一个表单,决定布局等等,然后将内容控件添加到他想要的信息位置


稍后,使用新表单请求项目X的信息。因此,将获取该表单的副本,并将CustomXML添加到Docx文件中。现在,因为XML shchema是预先知道的,并且在决定CC的路径时使用了它,所以XML数据将绑定到内容控件。

一个很好的选择是使用()构建一组文档模板,其中附加了预绑定代码。这两篇文章为研究此类解决方案提供了一个良好的开端:

有两个线程讨论了这方面的一些细节:和

使用VSTO的好处之一是,您可以钩住:


如果VSTO不是一个选项,您可以随时查看。

这应该非常简单。自定义控件不受i4i诉讼的影响,您可以在每个控件中使用tag属性命名它们(警告-限制为64个字符)。

为了让我清楚地了解您,您希望用户在Word client中添加CC,当用户添加CC时,在添加数据时将其绑定到某些数据,正确吗?@Otaku我不想事先定义CC,这样他们就可以将其添加到Word文档中(使用Word客户端),以便Word文档可以接受CustomXML。我目前没有VSTO,我想我需要专业版本的VS。但也许我会买一个。我没有看过其他文章,但我知道如何附加CustomXML,只是不喜欢添加后的大多数绑定解决方案,因为我不能相信文档制作者添加CC的权利。我会检查这一点,然后让你知道,并给出正确的答案,如果一切都好。酷。我在VSTO的CC事件上又添加了一组链接。这可能有助于钩住用户插入CCs和验证。顺便说一句,一般做法是不让最终用户插入CCs。相反,它们插入构建块(可以包含CCs)-insert>QuickParts。我使用了内容控件(我想这就是你所指的)并将它们作为QuickPart添加到模板中,以使创建它们更容易。最大的问题是重复项,但我将它们添加为表,并多次迭代最后一行。