Essential Grid supports auto populating data from the underlying data source and the DataSource property can be used to set the data source to the Grid.
Sample link
#region DataSource
DataTable dataTable = new DataTable();
dataTable.Columns.Add("ID");
dataTable.Columns.Add("Name");
dataTable.Columns.Add("Category");
dataTable.Columns.Add("SampleData");
dataTable.Columns.Add("Description");
for (int i = 0; i < 10; i++)
{
DataRow dataRow = dataTable.NewRow();
dataRow[0] = i;
dataRow[1] = "Name" + i.ToString();
dataRow[2] = "Category"+i;
dataRow[3] = "Data" + i.ToString();
dataRow[4] = "Decription" + i.ToString();
dataTable.Rows.Add(dataRow);
}
//to set the data source for the grid.
this.gridGroupingControl1.DataSource = dataTable;
#endregion
By default, the char(10) (i.e. the new line char) is addressed as “\r\b”. In order to render the char(10) value in the GridGroupingControl, the CellValue can be modified for display using the QueryCellStyleInfo event.
#region Event
//Event triggering
this.gridGroupingControl1.QueryCellStyleInfo += new GridTableCellStyleInfoEventHandler(gridGroupingControl1_QueryCellStyleInfo);
//Event customization
void gridGroupingControl1_QueryCellStyleInfo(object sender, GridTableCellStyleInfoEventArgs e)
{
if (e.Style.CellValue != null)
{
string cellValue = e.Style.CellValue.ToString();
if (cellValue.Contains("char(10"))
{
cellValue.Replace("char(10)", "\r\b");
e.Style.CellValue = cellValue;
}
}
}
#endregion

The entire product is available for free with no limitations through the community license if you qualify.
Note: I work for Syncfusion