Your class needs to implement the
ICustomTypeDescriptor
interface. The framework queries this interface when it needs to know what are the properties of your type. I wrote an article on a very similar subject a while ago. In fact, I used a Person class as well. In my case, I was creating baseline properties, such as Address1, Address2, etc.
Unlimited baselines for any class[
^]
However, for simplicity, you may choose a much simpler road that may still work. Make your Person class inherit from
DataTable
and have a single
DataRow
in it. Add columns when you add custom properties.