or


var columns = mainViewModel.Records.First() .Properties .Select((x, i) => new { Name = x.Name, DataType = x.DataType, Index = i }) .ToArray(); foreach (var column in columns) { var binding = new Binding(string.Format("Properties[{0}].Value", column.Index)); GridViewDataColumn col = new GridViewDataColumn(); col.UniqueName = column.Name; col.Header = column.Name; col.DataMemberBinding = binding; col.DataType = column.DataType; col.IsSortable = true; fleetGrid.Columns.Add(col); }