While it's not trivial, it seems to me that the best option here would be to create your own column type that inherits the DataGridViewComboBoxColumn class and for its cell template create your own cell type that inherits the DataGridViewComboBoxCell class. You could then add a property that lets you specify another column/property name, much like DisplayMember and ValueMember. The Displaymember could be used as normal to determine what to display in the editing control but the new property could be used in the GetFormattedValue method to get the value you want instead of using the DisplayMember to get the value to display.