I was wondering if anyone could shed some light on exactly how the datagrid binds to a datatable.

I know for instance that the datagrid will bind to public properties of an object (and not public fields for some reason). And I know that ITypedList plays some role when a datagrid binds to a table. But how does the datagrid know how to extract the field values from a tablerow??

I've tried using indexers in my own objects to facilitate a binding but the datagrid seems to ignore it.

Is there some other interface that the datatable is implementing which allows the datagrid to retrieve its fields by name?

I can't seem to find anything about it on msdn. Any help would be greatly appreciated!