public Grid(List<object> items) : this()
{
var prototype = items.FirstOrDefault();
if (prototype == null) throw new InvalidOperationException("Can't infer columns without at least one item");
foreach (var prop in prototype.GetType().GetProperties())
{
this.VisibleColumns.Add(new ColumnViewModel(prop.Name.ToConsoleString(Theme.DefaultTheme.H1Color)));
}
var dataSource = new MemoryDataSource();
dataSource.Items = items;
this.DataSource = dataSource;
}