Well a DataGridView control does reflection automatically. If you have a collection of 'C1' objects that implements the IList interface, then any public property will automatically be extracted and used to populate the cells in the apropriate column. Does this help? Harry.