Class ParentElement
Represents the base class for content elements which have children.
Inheritance
Implements
Inherited Members
Namespace: IronWord.Models.Abstract
Assembly: IronWord.dll
Syntax
public abstract class ParentElement : ContentElement
Holding and arranging child content in a Word document in C# is what ParentElement provides. It is the base for every node that contains other nodes, so a Paragraph holding runs, a DocumentSection holding paragraphs, a ListItem, and a Container all draw their child-management behavior from one place. Where the plain ContentElement base gives a node its identity, ParentElement adds the ability to own a subtree.
Concrete and intermediate types that extend it include Paragraph, Run, Container, DocumentSection, ListItem, MultiLevelTextList, and the table-side bases TableElement and TableElements. A developer obtains one of these by building a document or by reading nodes out of an existing one, then works through the inherited surface to read and reshape its children. Because the behavior lives on this base, the same operations apply no matter which parent you hold.
The member surface groups into clear functions. **Reading children:** Children returns the full child collection, while Tables and Texts give typed lists of the Table and TextContent nodes inside. **Mutating children:** AddChild appends nodes, InsertChildToIndex places one at a position, and RemoveChildren, RemoveAllChildren, and Remove detach them. **Locating and copying:** GetChildByIndex<T> fetches a typed child by position, ExtractElements<T> collects every descendant of a type, and Clone deep-copies the element. **Diagnostics:** LogObjectTree prints the subtree as readable text, which is useful when verifying the structure of a node during development before you save.
using IronWord;
using IronWord.Models;
WordDocument doc = new WordDocument("input.docx");
Paragraph paragraph = doc.Paragraphs[0];
paragraph.AddChild(new Text("appended"));
Console.WriteLine(paragraph.LogObjectTree());The add text how-to appends child content, the add table how-to builds nested structures, and the document element tutorial explains the parent-child tree.
Constructors
ParentElement()
Initializes a new instance of the ContentElement class.
Declaration
protected ParentElement()
ParentElement(IWordDocumentObject[])
Initializes a new instance of the ContentElement class with the specified child elements.
Declaration
public ParentElement(params IWordDocumentObject[] children)
Parameters
| Type | Name | Description |
|---|---|---|
| IronSoftware.Abstractions.Word.IWordDocumentObject[] | children | The child elements to be added. |
Properties
Children
Gets the list of child elements contained within this element.
Declaration
public IWordDocumentObjectCollection Children { get; }
Property Value
| Type | Description |
|---|---|
| IronSoftware.Abstractions.Word.IWordDocumentObjectCollection |
Tables
A list of all table elements contained within this element or its children
See also: ExtractElements<T>()
Declaration
public List<Table> Tables { get; }
Property Value
| Type | Description |
|---|---|
| System.Collections.Generic.List<Table> |
Texts
A list of all text elements contained within this element or its children
See also: ExtractElements<T>()
Declaration
public List<TextContent> Texts { get; }
Property Value
| Type | Description |
|---|---|
| System.Collections.Generic.List<TextContent> |
Methods
AddChild(IWordDocumentObject[])
Adds the specified child elements to this element.
Declaration
public virtual void AddChild(params IWordDocumentObject[] children)
Parameters
| Type | Name | Description |
|---|---|---|
| IronSoftware.Abstractions.Word.IWordDocumentObject[] | children | The child elements to be added. |
Clone()
Creates a deep copy of the Element.
Declaration
public override object Clone()
Returns
| Type | Description |
|---|---|
| System.Object | A new instance of the Image with all properties copied. |
Overrides
CloneObject()
Declaration
protected override object CloneObject()
Returns
| Type | Description |
|---|---|
| System.Object |
Overrides
ExtractElements<T>()
Extracts all child elements of a specific type from this element.
Declaration
public List<T> ExtractElements<T>()
where T : IWordDocumentObject
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.List<T> | A list of child elements of the specified type. |
Type Parameters
| Name | Description |
|---|---|
| T | The type of child element to extract. |
GetChildByIndex<T>(Int32)
Gets the child element at the specified index, cast to the specified type.
Declaration
public IWordDocumentObject GetChildByIndex<T>(int index)
where T : IWordDocumentObject
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | index | The index of the child element. |
Returns
| Type | Description |
|---|---|
| IronSoftware.Abstractions.Word.IWordDocumentObject | The child element at the specified index. |
Type Parameters
| Name | Description |
|---|---|
| T | The type of the child element to retrieve. |
InsertChildToIndex(Int32, IWordDocumentObject[])
Inserts the specified child elements at the specified index.
Declaration
public void InsertChildToIndex(int index, params IWordDocumentObject[] children)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | index | The index at which to insert the children. |
| IronSoftware.Abstractions.Word.IWordDocumentObject[] | children | The child elements to be inserted. |
LogObjectTree()
Initiates logging of the object tree by traversing from the current object.
Declaration
public string LogObjectTree()
Returns
| Type | Description |
|---|---|
| System.String |
Remove()
Marks this element as deleted.
Declaration
public override void Remove()
Overrides
RemoveAllChildren()
Removes all child elements from this element.
Declaration
public void RemoveAllChildren()
RemoveChildren(IWordDocumentObject[])
Removes the specified child elements from this element.
Declaration
public void RemoveChildren(params IWordDocumentObject[] children)
Parameters
| Type | Name | Description |
|---|---|---|
| IronSoftware.Abstractions.Word.IWordDocumentObject[] | children | The child elements to be removed. |