Да, можно создать таблицу в WPF с использованием DataGrid без привязки данных к заранее определенной схеме модели. Используя DataGrid, вы можете генерировать столбцы динамически, основываясь на данных, которые вы планируете отобразить. Ниже приведен пример того, как вы можете работать с DataGrid, когда структура данных заранее не известна.
Чтобы работать с неизвестным заранее числом столбцов и типами данных, вы можете использовать тип `DataTable` для хранения данных. `DataTable` может хранить данные различных типов и позволяет динамически добавлять и удалять столбцы.
Пример кода в коде-behind для создания DataGrid и заполнения его данными:
```csharp
using System.Data;
// Создаем DataTable
DataTable dataTable = new DataTable();
// Динамически добавляем столбцы
dataTable.Columns.Add("Id", typeof(int));
dataTable.Columns.Add("Name", typeof(string));
dataTable.Columns.Add("Date", typeof(DateTime));
// Добавляем строку данных
DataRow row = dataTable.NewRow();
row["Id"] = 1;
row["Name"] = "John Doe";
row["Date"] = DateTime.Now;
dataTable.Rows.Add(row);
// Повторяем добавление данных при необходимости...
// Привязываем DataTable к DataGrid
dataGrid.ItemsSource = dataTable.DefaultView;
```
XAML для DataGrid:
```xaml
<DataGrid x:Name="dataGrid" AutoGenerateColumns="True"/>
```
Вы можете установить свойство `AutoGenerateColumns` в `True`, чтобы DataGrid автоматически сгенерировал столбцы на основе источника данных. Когда вы используете `DataTable` в качестве источника данных, WPF будет отображать все столбцы, присутствующие в `DataTable`.
Если вы хотите использовать коллекцию строк и конвертеры для отображения и сортировки данных, вы можете написать свой конвертер данных, который будет преобразовывать строки в соответствующие типы данных перед их отображением в DataGrid. Однако это может быть менее удобно, чем использовать `DataTable`, так как вам потребуется явно обрабатывать все преобразования и сортировку.
Создание собственного элемента управления для отображения данных может быть оправдано в случае, если у вас есть очень специфические требования к отображению данных или интеракции, которые нельзя легко реализовать с помощью стандартного DataGrid. Однако это потребует значительного количества времени на разработку и тестирование.
В большинстве случаев использование DataGrid с DataTable может быть самым быстрым и удобным решением для отображения таблицы с динамическим набором столбцов и типов данных в WPF.