Храните ваши данные в форме, которая легко сериализуется в XML - либо в классе, реализующем сериализацию XML, либо в ADO.NET DataSet
. Напишите шаблоны XSLT для преобразования XML в XHTML. Реализуйте преобразования, используя класс XslCompiledTemplate
.
Конечно, этот подход потребует от вас изучения некоторых вещей, о которых вы, вероятно, не очень много знаете. XSLT не тривиален, и в XML, XSLT и HTML есть тонкости, которые время от времени могут вас сбить с толку. Но как только вы изучите это, это невероятно мощное сочетание технологий. Я не создавал HTML-документ вручную в течение десятилетия; моей отправной точкой для любого HTML-документа, который мне нужно создать, является документ XML, содержащий его содержимое и преобразование XSLT для рендеринга содержимого.
Со стороны WPF единственная проблема, с которой вам придется столкнуться, заключается в отображении визуализированного HTML в вашем приложении. Я сделал это двумя способами. Один из них заключается в обёртывании элемента управления WinForms WebBrowser
в UserControl
, который предоставляет свойство зависимости Html
, чтобы я мог привязать к нему свойство Html
моей модели представления. (Все модели представлений имеют вспомогательный класс для получения XML и преобразования его в HTML.)
Другой, более сложный способ получить выходные данные в пользовательском интерфейсе WPF - полностью обойти HTML и написать XSLT-преобразование, которое отображает данные как FlowDocument
в XAML. На самом деле, это не сложнее, это просто создает кучу новых проблем, о которых вам нужно подумать - также, это может быть совершенно неуместно для вашего приложения, если производство HTML - это действительно то, о чем идет речь. Но как только вы узнаете, как преобразовать данные XML в HTML, преобразование их в XAML становится детской игрой.