namespace QWERTYkez.WordProcessor; /// /// Вспомогательный класс для замены параграфов в различных контейнерах /// internal static class ParagraphReplacer { /// /// Заменяет параграф на новые параграфы в родительском элементе /// /// Старый параграф для замены /// Новые параграфы internal static void ReplaceParagraph(Paragraph oldParagraph, List newParagraphs) { if (oldParagraph is null || newParagraphs is null || newParagraphs.Count == 0) return; var parent = oldParagraph.Parent; if (parent is null) return; int paraIndex = -1; var children = parent.ChildElements; // Находим индекс параграфа for (int i = 0; i < children.Count; i++) { if (children[i] == oldParagraph) { paraIndex = i; break; } } if (paraIndex == -1) return; // Удаляем старый параграф parent.RemoveChild(oldParagraph); // Вставляем новые параграфы for (int i = 0; i < newParagraphs.Count; i++) { parent.InsertAt(newParagraphs[i], paraIndex + i); } } }