/// <summary> /// Removes the content control and keep contents. /// </summary> /// <param name="contentControl">The content control.</param> /// <param name="customXmlPartDocElement">The custom XML part doc element.</param> /// <returns>Returns the custom xml part document element list</returns> private IEnumerable<OpenXmlCompositeElement> RemoveContentControlAndKeepContents(SdtElement contentControl, XmlElement customXmlPartDocElement) { IList<OpenXmlCompositeElement> elementsList = new List<OpenXmlCompositeElement>(); this.AssignContentFromCustomXmlPartForDataboundControl(contentControl, customXmlPartDocElement); foreach (var elem in GetSdtContentOfContentControl(contentControl).Elements()) { var newElement = contentControl.Parent.InsertBefore(elem.CloneNode(true), contentControl); AddToListIfCompositeElement(elementsList, newElement); } contentControl.Remove(); return elementsList; }