Why not simply do the following?
private void GenerateGrid(Dictionary<string,> staticFields)
{
DataTable dataTable = new DataTable();
dataTable.Columns.Add("Name");
dataTable.Columns.Add("Value");
foreach (var pair in staticFields)
{
dataTable.Rows.Add(pair.Key, pair.Value);
}
dgvDynamicColumns.DataSource = null;
dgvDynamicColumns.DataSource = dataTable;
dgvDynamicColumns.Refresh();
}
Seems a lot easier to me... By the way, your code sample worked just as well for me.