К сожалению, в моем тестировании динамические объекты, такие как Expando
, еще не работают с WPF4.Однако существуют и другие проверенные и действительные методы.
Для набора String[]
можно использовать DataTable
, чтобы получить динамические столбцы:
var rawData = new string[][]
{
new string[] { "R1F1", "R1F2", },
new string[] { "R2F1", "R2F2", },
};
var fieldNames = Enumerable.Range(1, rawData[0].Length).Select(field => "Field" + field);
var table = new DataTable();
table.Columns.AddRange(fieldNames.Select(fieldName => new DataColumn(fieldName)).ToArray());
foreach (var record in rawData)
{
DataRow row = table.NewRow();
for (int i = 0; i < record.Length; i++)
{
row[i] = record[i];
}
table.Rows.Add(row);
}
DataContext = table;
вместес XAML следующим образом:
<Grid>
<DataGrid ItemsSource="{Binding}"/>
</Grid>
приводит к:
