If the assigned object does not contain the list of fields (like a DataTable or a DataView), an attempt is made to retrieve the fields using the System.ComponentModel.ITypedList interface. If the System.ComponentModel.ITypedList interface is not supported, then the public properties of the first object in the collection are used as the fields.