There are two issues here. First - if you are going to use 2 properties of the Location object, you should use this object as a data source. No point to extract separate list of strings for this:
ddLocation.DataSource = dc.Locations.ToList();
This will resolve your exception. Also this line:
DropDownList ddLocation = new DropDownList();
should not be here, just remove it. You already have your drop down initialized.
Second issue - if you want some default item to appear in the list, you should insert it after the data binding:
populattePage();
ddLocation.Items.Insert(0, new ListItem("<Select a Location>", "0"));