Interface IContentElement
Represents an element that can contain and manage child content elements.
Namespace: IronWord.Models.Abstract.Interfaces
Assembly: IronWord.dll
Syntax
public interface IContentElement
IContentElement is the contract that describes a child-holding node in the IronWord content model. It declares the operations a document element exposes when it owns a subtree of other elements, so code can read and reshape that subtree without depending on a concrete node type. The contract mirrors the shape of the ContentElement family: it speaks in terms of ContentElement children and a ContentElement parent.
A developer works through the interface rather than instantiating it, since an interface has no constructor. The everyday members read clearly. Children is the list of ContentElement nodes the element holds, and Parent points back at the ContentElement that contains it, so traversal works in both directions. AddChild appends nodes, InsertChildToIndex places one at a position, and Clone returns a ContentElement copy. Coding to IContentElement keeps editing routines decoupled from any single node class and makes them easy to test with a stand-in.
The rest of the surface fills out tree editing. Remove detaches the element, RemoveChildren and RemoveAllChildren clear nodes, and Replace swaps a child in place. GetChildByIndex<T> fetches a typed child by position, and ExtractElements<T> collects every descendant of a requested type into a list. Because all of these are typed against ContentElement, a routine that accepts an IContentElement can walk and rewrite a document tree whatever concrete elements it actually contains.
The document element tutorial explains the content tree this contract describes, the add text how-to adds children, and the remove text how-to detaches them.
Properties
Children
Gets or sets the list of child content elements.
Declaration
List<ContentElement> Children { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Collections.Generic.List<ContentElement> |
Parent
Gets the parent content element.
Declaration
ContentElement Parent { get; }
Property Value
| Type | Description |
|---|---|
| ContentElement |
Methods
AddChild(ContentElement[])
Adds one or more child content elements to the current content element.
Declaration
void AddChild(params ContentElement[] children)
Parameters
| Type | Name | Description |
|---|---|---|
| ContentElement[] | children | The content elements to be added as children. |
Clone()
Creates a deep copy of the content element.
Declaration
ContentElement Clone()
Returns
| Type | Description |
|---|---|
| ContentElement | A new instance of the content element with all properties and child elements copied. |
ExtractElements<T>()
Extracts elements of a specified type from the child content elements.
Declaration
List<T> ExtractElements<T>()
where T : ContentElement
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.List<T> | A list of content elements of the specified type. |
Type Parameters
| Name | Description |
|---|---|
| T | The type of content element to extract. |
GetChildByIndex<T>(Int32)
Gets the child content element at the specified index and of the specified type.
Declaration
ContentElement GetChildByIndex<T>(int index)
where T : ContentElement
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | index | The index of the child content element. |
Returns
| Type | Description |
|---|---|
| ContentElement | The child content element at the specified index and of the specified type. |
Type Parameters
| Name | Description |
|---|---|
| T | The type of content element to retrieve. |
InsertChildToIndex(Int32, ContentElement[])
Inserts one or more child content elements at the specified index.
Declaration
void InsertChildToIndex(int index, params ContentElement[] children)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | index | The index at which the child content elements should be inserted. |
| ContentElement[] | children | The content elements to be inserted. |
Remove()
Removes the current content element from its parent.
Declaration
void Remove()
RemoveAllChildren()
Removes all child content elements from the current content element.
Declaration
void RemoveAllChildren()
RemoveChildren(ContentElement[])
Removes specified child content elements from the current content element.
Declaration
void RemoveChildren(params ContentElement[] children)
Parameters
| Type | Name | Description |
|---|---|---|
| ContentElement[] | children | The content elements to be removed. |
Replace(ContentElement)
Replaces the current content element with a new child content element.
Declaration
void Replace(ContentElement newChild)
Parameters
| Type | Name | Description |
|---|---|---|
| ContentElement | newChild | The new child content element to replace the current element. |