The solution to this issue was multi-part.
I had to assign datagridview's datasource to bindingsource object (instead of bindingsource.datasource) as Carlos Landeras pointed out.
In addition to this I had to call:
bindingsource.ResetBindings(False)
DataGridView.Refresh()