Динамическая генерация таблиц в XAML

25.10.2013

Иногда при проектировании WPF приложений возникает необходимость отображения таблиц разной конфигурации для формирования отчётов и отображения данных. Cтандартными средствами Visual Studio добиться нужного результата не всегда представляется возможным.

XAML Report

Можно добавить объекты на форму программным способом, непосредственно в коде программы в процессе исполнения.

Плюс данного метода – это использование минимального набора ПО. Но при построении большой таблицы он займёт слишком много времени. Так же потребуется реализация доступа к таблицам с данными и формирование циклов выборки. А при дальнейшем изменении структуры придётся перестраивать всё заново.

Другой способ получить красивую нестандартную таблицу – использование FastReport.NET.

Открываем дизайнер отчета, создаём источник данных и добавляем объекты: заголовок отчёта, заголовок страницы, данные, подвал страницы и другие при желании. Формируем отчёт и сохраняем его в формате XAML. Для этого жмём кнопку «Предварительный просмотр»(Ctrl+P), далее «сохранить» и выбираем пункт «Файл XAML». Созданный шаблон отчета можно сохранить для последующего использования.

Можно встроить FastReport.NET в создаваемую программу. В ходе работы настраиваем таблицу в редакторе или программно, экспортируем в файл и загружаем сразу в WPF. Код экспорта представлен ниже:

// prepare a report
report1.Prepare();
// create an instance of XAML export filter
FastReport.Export.XAML.XAMLExport export = new FastReport.Export.XAML.XAMLExport();
// export in xaml
report1.Export(export, "result.xaml"); 

После экспорта сразу можно произвести загрузку. Для этого используем код:

// Создание потока для чтения выбранного XAML файла
using (FileStream fs = new FileStream(filename, FileMode.Open))
{ // Создание нового окна для графического вывода содержимого XAML файла
 ((Window)XamlReader.Load(fs)).Show();
}

Где filename – название созданного файла с таблицей.

Вместо FileStream можно использовать MemoryStream, тогда XAML можно передать без использования файлов.

Так можно построить таблицу динамически прямо в коде программы. Это позволяет генерировать таблицу на сервере, а на клиенте получать XAML файл и отображать его на форме. Так же FastReport избавляет от написания кода доступа к базе - вся работа  делается им, и не требует вмешательства.

Из вышесказанного видно, что использование FastReport.NET значительно упрощает задачу и сокращает время разработки, избавляет от трудностей с выборкой данных из базы, облегчает изменение структуры таблицы.

.NET Visual Studio FastReport WPF .NET Visual Studio FastReport WPF
12 октября 2026

Как экспортировать отчёт из FastReport .NET в доступный PDF (PDF/UA-1)

Как экспортировать отчёт из FastReport .NET в доступный PDF/UA-1: настройка через интерфейс и код на C#, роли SemanticRole, AltText и проверка валидаторами.
12 октября 2026

Подключение к базе данных Greenplum Database в FastReport .NET

Узнайте, как подключить Greenplum Database к FastReport .NET: сборка плагина на Npgsql, интеграция в дизайнер отчётов и регистрация коннектора в C#‑коде приложения.
12 октября 2026

Экспорт отчёта в XML из Preview в FastReport .NET

Узнайте, как сохранить отчёт в формате XML в FastReport .NET: экспорт из Preview без кода и программный экспорт через XMLExport с настройкой параметров.

Не является публичной офертой
© 1998-2026 ООО «Быстрые отчеты»