// Write columns related to the given table cell range.
        private static void WriteTableColumnsInformation(ITextRange range, Table table, XmlWriter xmlWriter, XamlTypeMapper xamlTypeMapper)
        {
            TableColumnCollection columns = table.Columns;
            int startColumn;
            int endColumn;

            if (!TextRangeEditTables.GetColumnRange(range, table, out startColumn, out endColumn))
            {
                startColumn = 0;
                endColumn = columns.Count - 1;
            }

            Invariant.Assert(startColumn >= 0, "startColumn index is supposed to be non-negative");

            if(columns.Count > 0)
            {
                // Build an appropriate name for the complex property
                string complexPropertyName = table.GetType().Name + ".Columns";

                // Write the start element for the complex property.
                xmlWriter.WriteStartElement(complexPropertyName);

                for (int i = startColumn; i <= endColumn && i < columns.Count; i++)
                {
                    WriteXamlAtomicElement(columns[i], xmlWriter, /*reduceElement:*/false);
                }

                // Close the element for the complex property
                xmlWriter.WriteEndElement();
            }

        }
 internal TableElementContentContainer(Table table, PropertyRecord [] localValues, ContentContainer childContainer) :
     base(table.GetType(), localValues, table.Resources, childContainer)
 {
     _cpTable = table.TextContainer.Start.GetOffsetToPosition(table.ContentStart);
     _columns = SaveColumns(table);
 }
 internal TableElementContentContainer(Table table, PropertyRecord []localValues, ContentContainer childContainer) :
     base(table.GetType(), localValues, table.Resources, childContainer)
 {
     _cpTable = table.TextContainer.Start.GetOffsetToPosition(table.ContentStart);
     _columns = SaveColumns(table);
 }
 // Token: 0x0600860A RID: 34314 RVA: 0x0024B877 File Offset: 0x00249A77
 internal TableElementContentContainer(Table table, PropertyRecord[] localValues, TextTreeDeleteContentUndoUnit.ContentContainer childContainer) : base(table.GetType(), localValues, table.Resources, childContainer)
 {
     this._cpTable = table.TextContainer.Start.GetOffsetToPosition(table.ContentStart);
     this._columns = TextTreeDeleteContentUndoUnit.SaveColumns(table);
 }