I do not think this is specific to me. You have kindly done this on the drop down list already. My last grid had a method "FindRow" which took a column index, starting row index etc and returned the row index of the first row in which the column matched.
The way to look at it is that the iGrid is a valuable data store that can be used in many ways and often important data is contained within the grid and no where else in the program. It would be pointless to duplicate that data outside the grid. I often use hidden columns to contain data that the user does not need to see but is needed by the program. I already use your dropdown list object to translate keys to strings.