In the code behind for the grid, you need to tie into the grid's ItemDataBound event. This event fires for every Item that is databound in the grid. Within the handler for the event, you can access the data item of the current item being bound. This is done thru e which is the event's eventargs object. e.Item will give you the datagrid item itself. Off that you can access the actual data item that the grid item is being bound to: e.Item.DataItem. This will return the data item (object, datarow, etc). You'll need to convert that to the applicable data type and you can than access whatever you need, such as the column for Region.
Then you'll need to use the DataGridItem's "FindControl()" method to find the DDL control that you put in the template. Once you have the DDL control you can set its selected item in the normal way.
Keep in mind that you have to do some testing in this event handler because ALL items of the datagrid are bound: Items, AlternateItems, Header, Footer, etc. You need to test e.Item.ItemType for only the item types you want (Item, AlternateItem) because the DDL control (and the Region column value for that matter) won't exist in the other items.
Work smarter, not harder