<pre>private void Window_Loaded(object sender, RoutedEventArgs e)
{
var tab = new Table();
tab.Name = "MyTable";
newRtb.RegisterName("MyTable", tab);
var gridLenghtConvertor = new GridLengthConverter();
tab.Columns.Add(new TableColumn() { Name = "Column1", Width = (GridLength)gridLenghtConvertor.ConvertFromString("*") });
tab.Columns.Add(new TableColumn() { Name = "Column2", Width = (GridLength)gridLenghtConvertor.ConvertFromString("*") });
tab.RowGroups.Add(new TableRowGroup());
for (int i = 0; i < 10; i++)
{
tab.RowGroups[0].Rows.Add(new TableRow());
var tabRow = tab.RowGroups[0].Rows[i];
tabRow.Cells.Add(new TableCell(new Paragraph(new Run("Row" + (i + 1).ToString() + " Column1"))) { TextAlignment = TextAlignment.Center });
tabRow.Cells.Add(new TableCell(new Paragraph(new Run("Row" + (i + 1).ToString() + " Column2"))));
}
newRtb.Document.Blocks.Add(tab);
}
Table tab = newRtb.FindName("MyTable") as Table;
//add row:
tab.RowGroups[0].Rows.Add(new TableRow());
var tabRow = tab.RowGroups[0].Rows[tab.RowGroups[0].Rows.Count - 1];
tabRow.Cells.Add(new TableCell(new Paragraph(new Run("NEW ROW C1"))) { TextAlignment = TextAlignment.Center });
tabRow.Cells.Add(new TableCell(new Paragraph(new Run("NEW ROW C2"))));
//remove first row:
int index = 0;
tab.RowGroups[0].Rows.RemoveAt(index);