A: 

System.Data.DataViewManagerListItemTypeDescriptor is a valid result from a BindingSource, especially if the item being bound to doesn't specify the .DisplayMember properly. Is there a particular reason why you are manually looping through the binding source? The purpose of the binding source is that you can bind it to specific controls and have them automatically populated from the database.

Anyway, I haven't tested the following code, but you may have better luck with:

foreach (object o in this.theBindingSource)
{
    System.Data.DataRowView dataRowView1 = (System.Data.DataRowView)o;
}

BindingSource is already IEnumerable, so you shouldn't have to directly access the list.

UPDATE

Instead of looping through, you could do something like this to populate your DataGridView like:

theBindingSource.DataSource = tags;
yourDataGridView.DataSource = theBindingSource;

I believe .DisplayMember is only necessary on things like ListViews, but I'm not positive about that.

HVS
The reason I had to loop through the binding source is that another DataGridView needs to be populated with the contents of the bindindg source; furthermore, the DataGridView implemented a custom sorting for the data in the control or view. In addition to removing the direct access of the List should I specify the DisplayMember property?
Amar Patel
Why would a BindingSource contain DataViewManagerListItemTypeDescriptor instead of DataRowViews?
Qwertie