I'm sure this can be done, but can it be done easily?

For example:
vb.net Code:
  1. Class ColumnData
  2.     Private _ColName as String
  3.     Private _Data as String
  4.    
  5.     Property ColName as String
  6.         Get
  7.             Return _ColName
  8.         End Get
  9.         Set(ByVal value as String)
  10.             _ColName = value
  11.         End Set
  12.     End Property
  13.    
  14.     Property Data as String
  15.         Get
  16.             Return _Data
  17.         End Get
  18.         Set(ByVal value as String)
  19.             _Data = value
  20.         End Set
  21.     End Property
  22. End Class
  23.  
  24. Claas RowData
  25.     Private _RowName as String
  26.    
  27.     Property RowName as String
  28.         Get
  29.             Return _RowName
  30.         End Get
  31.         Set(ByVal value as String)
  32.             _RowName = value
  33.         End Set
  34.     End Property
  35.    
  36.     Public ColumnBL as new BindingList(Of ColumnData)
  37. End Class
  38.  
  39. Public RowBL = new BindingList(Of RowData)

How would I build a data-bound DataGridView with the column names coming from the ColumnData, Row Names from the RowData and the values from the RowBL(row).ColumnBL(column).Data

I know how to create DataSources bound to objects, but I have only done it with fixed columns. How do I add columns on the fly and data-bind each cell properly?

Thanks for your help with this!

-Andy.