ОК, это может быть не самый «идеальный» метод (я бы предпочел, чтобы это произошло в XAML), но вот что вам нужно для начала. Этот код начинается с списка, называемого Items, и Grid, объявленного с именем ItemsGrid.
int maxRow = Items.Select(i => i.RowId).Max();
int maxCol = Items.Select(i => i.ColumnId).Max();
for (int i = 0; i <= maxRow; i++)
ItemsGrid.RowDefinitions.Add(new RowDefinition());
for (int i = 0; i <= maxCol; i++)
ItemsGrid.ColumnDefinitions.Add(new ColumnDefinition());
foreach (var item in Items)
{
TextBlock newItem = new TextBlock() { Text = item.Value };
ItemsGrid.Children.Add(newItem);
Grid.SetRow(newItem, item.RowId);
Grid.SetColumn(newItem, item.ColumnId);
}
В качестве альтернативы, вы можете взглянуть на фактические элементы управления DataGrid за пределами того, что прямо сейчас приготовленная в .NET Framework.
МОФ Toolkit есть DataGrid, который я успешно используется в нескольких проектах: http://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=29117
Сторонние поставщики также производить simimlar сетки. Выдающимися, в определенном порядке, являются Xceed, Telerik, Infragistics и Syncfusion.
Надеюсь, что это поможет! Tim