You can have your IList object implement ITypedList to expose exactly the objects you want to see from your collection.
Or, you can dynamically set property types at runtime also using a ITypedList implementation. Here is a sample of this latter idea.
ITypedListDataSourceSample_3885.zip