You can determine which fields are visible as properties, by using the entitycollection's code to produce propertydescriptors. As you bind the entitycollection directly to the grid, I assume you're using 1.0.2005.1/.net 1.x. If you're using v2.0 (we can't keep track of that ourselves, please state this with your posts... ), you've to use an EntityView2, as ITypedList is implemented on that, but it works roughly the same. (you then call EntityView2.GetPropertyDescriptors(dummy, null); )
So typically you do:
EntityCollection dummyCol = new EntityCollection(new ApplicantCertificationEntityFactory());
IEntity2 dummy = new ApplicantCertificationEntity();
PropertyDescriptorCollection propertyDescriptors = dummyCol.GetPropertyDescriptors(dummy, typeof(ApplicantCertificationEntity));
If you don't want collection properties to be present, use the overload which accepts skipCollections (boolean), and pass in true.
this gives property descriptors for all properties which are visible in the entity, and which are useful, so properties which would be reported back to a grid if you bound dummyCol to it.
You can then walk the properties, and use the names for columns.