C# Word 2013嵌套重复节内容控件

C# Word 2013嵌套重复节内容控件,c#,ms-word,openxml,openxml-sdk,word-2013,C#,Ms Word,Openxml,Openxml Sdk,Word 2013,在其他重复节控件中嵌套重复节控件时遇到问题 假设我正在枚举数据中心环境中vm主机中的服务器 Datacenter1 Environment1 VMHost1 Server1 Server2 VMHost2 Server3 Server4 Environment2 VMHost3 Server5 ... 我的文档需要有许多重

在其他重复节控件中嵌套重复节控件时遇到问题

假设我正在枚举数据中心环境中vm主机中的服务器

Datacenter1
    Environment1
        VMHost1
           Server1
           Server2
        VMHost2
           Server3
           Server4
    Environment2
        VMHost3
           Server5
...
我的文档需要有许多重复的层次结构部分。
这是文件的基本结构:

Datacenter1 Header

    Some description text

    ----- Environment1 Table ---------
    | Header1  | Header 2 | Header 3 |
    |--------------------------------|
    | VMHost1  | Server1  | ........ |
    |          | Server2  | ........ |
    |--------------------------------|
    | VMHost2  | Server3  | ........ |
    |          | Server4  | ........ |
    ----------------------------------

    ----- Environment2 Table ---------
    | Header1  | Header 2 | Header 3 |
    |--------------------------------|
    | VMHost3  | Server5  | ........ |
    ----------------------------------

Datacenter2 Header

    Some description text

    ----- Environment3 Table ---------
    | Header1  | Header 2 | Header 3 |
    |--------------------------------|
    | VMHost1  | Server1  | ........ |
    |          | Server2  | ........ |
    |--------------------------------|
    | VMHost2  | Server3  | ........ |
    |          | Server4  | ........ |
    ----------------------------------
如您所见,我需要一些嵌套的内容控件

但我的行为真的很古怪。与添加嵌套的重复节类似,它有时会删除其外部的重复控件,该控件应围绕表行进行包装

其他时候,我认为我已经正确地设置了所有内容,然后为了测试它,我单击[+]重复整个数据中心部分,但它所做的不仅仅是重复该部分,或者有时重复同一部分中的其他部分

我没有使用分组功能,也不确定我是否应该使用分组功能,或者如果使用分组功能,它会有什么帮助

希望这不是实现中的错误,我只是做错了什么。。但我担心这种“高级”方案不受支持

最终,我将在UI中锁定所有这些控件,并使用OpenXMLSDK中注入的自定义XML部分填充这些控件。我在文档中还有许多其他部分,包括重复部分,它们工作正常,但它们的重复部分没有嵌套

我已经得到了应该支持嵌套的XML结构,在我逐步映射这些控件时,一切都很好,直到我修改了XML,将更多的子节点添加到各个节点以测试重复部分。在某些情况下,它删除了整个部分,在另一些情况下,它重复嵌套的子节点作为父节点,重复整个表。

我想问题是:
1.如果已成功嵌套重复节,如何嵌套
2.如果你遇到了这些古怪的行为,你是如何应对的

3.关于内容控件集、重复节,分组功能的目的是什么?我应该使用它们来实现这一点吗?

我已经设法实现了这一点。
下面是一个示例文档:
我曾经帮助命名、绑定(自动映射!)和导航内容控件

问题似乎是由两个因素组合而成:

  • 不兼容的XML结构
  • 在基于表格的重复部分中混合基于段落的重复部分

  • 不兼容的XML
    为了解决重复表行中单元格中嵌套段落重复的问题,我使用外部元素包装重复元素:

    <relativeRoot>
        <nonRepeatingNode/>
        <table>
            <repeatingTableRow>
                <text1/>
                <text2/>
            </repeatingTableRow>
            <repeatingTableRow>
                <text1/>
                <text2/>
            </repeatingTableRow>
        </table>
    </relativeRoot>
    
    下面是:

    repeating section control
    ^-> table
        ^-> row (fixed, non-repeating)
            ^-> column1a: plain text control
            ^-> column2a: table
                          ^-> repeating section control
                              ^-> row
                                  ^-> column1b: plain text control
                                  ^-> column2b: table 
                                                ^-> repeating section control
                                                    ^-> row                                              
                                                        ^--> column1c: plain text control
    
            ^-> column3a: repeating section control
                         ^-> plain text control
    


    可能还有其他方法可以让它工作(),但无论出于什么原因,我都无法让它工作

    我用Word 2013对此进行了测试,它对我有效


    首先,我在整个表周围放置了一个重复节内容控件(RSCC),然后在一个表行(不是最后一行!)周围放置了另一个RSCC。最后,我将纯文本内容控件放入表格单元格。

    您的问题是什么?这一点并不清楚。如果你认为你的代码中有bug,就发布代码。不幸的是,我知道它不是很清楚。部分原因是我不能仅仅发布整个文档,而且随着所有这些的进行,制作一个新的文档需要一些努力。在我能做到这一点之前,我想把它拿出来。也就是说,如果你曾经这样做过,那么这应该是足够的信息来提供反馈。应该非常清楚重复节控件的位置,以及分组控件是否是必需的,或者是否有助于这些操作。我正在研究一个示例…@Okuma.Scott您是否使用过嵌套的重复内容控件?不,我只是想通过改进您的问题来帮助您获得答案。糟糕,谢谢;)
    repeating section control
    ^-> table
        ^-> row (fixed, non-repeating)
            ^-> column1a: plain text control
            ^-> column2a: table
                         ^-> repeating section control
                             ^-> row
                                 ^-> column1b: plain text control
                                 ^-> column2b: repeating section control
                                               ^--> plain text control
    
            ^-> column3a: repeating section control
                         ^-> plain text control
    
    
    - the repeats within column3a work
    - the repeats of row column1b/2b do not
    
    repeating section control
    ^-> table
        ^-> row (fixed, non-repeating)
            ^-> column1a: plain text control
            ^-> column2a: table
                          ^-> repeating section control
                              ^-> row
                                  ^-> column1b: plain text control
                                  ^-> column2b: table 
                                                ^-> repeating section control
                                                    ^-> row                                              
                                                        ^--> column1c: plain text control
    
            ^-> column3a: repeating section control
                         ^-> plain text control