populating datagridview with list of objects

Simply add using System.Linq; at the top. Then you can do this:

//This will create a custom datasource for the DataGridView.
var transactionsDataSource = tranList.Select(x => new
{
        Amount = x.amount,
        Type = x.type,
        Balance = x.balance,
        Date = x.date,
        TransNum = x.transNum
        Description = x.description
}).ToList();

//This will assign the datasource. All the columns you listed will show up, and every row
//of data in the list will populate into the DataGridView.
regView.DataSource = transactionsDataSource;

use as DGV:

DataGridView groupListDataGridView;

column:

DataGridViewTextBoxColumn groupListNameColumn;

column setup should be like this:

groupListNameColumn.DataPropertyName = "name";

use this property, else all columns will be added.

groupListDataGridView.AutoGenerateColumns = false;

populate like this:

private void populateGroupList() {
    groupListDataGridView.DataSource = null;
    formattedGroupList = new SortableBindingList<DataGridGroupObject>();
    foreach (GroupObject go in StartUp.GroupList) {
        DataGridGroupObject dggo = new DataGridGroupObject();
        dggo.id = go.Id;
        dggo.name = go.Name;
        formattedGroupList.Add(dggo);
    }
    groupListDataGridView.DataSource = formattedGroupList;
    groupListDataGridView.Invalidate();
}

and model:

public class DataGridGroupObject
{
    public int id { get; set; }      //this will be match id column
    public string name { get; set; } // this will be match name column
}

There's really two high level approaches to this.

1) Add the manually created rows directly to the DataGridView. In this case, you have to manually update/remove them as things change. This approach is "ok" if you don't intend to alter/change the content of the display after you initialize it. It becomes untenable if you do.

To add it directly, you need to create a DataGridViewRow, and populate it with the individual values, and then add the DataGridViewRow to the DataGridView.Rows.

2) Data bind the DGV. There's many articles about databinding to a DataGridView. In some cases, it's easier to just add your data to a DataTable, and then extract a DataView from that, and bind the DataGridView to the DataView. Other people find it easier to directly bind to a collection.

CodeProject has a decent article to get you started down that path, but a quick Google search will yield many other articles.

http://www.codeproject.com/Articles/24656/A-Detailed-Data-Binding-Tutorial