I had a look at the following code:
cmbSomeComboBox.DataSource = MySource;
cmbSomeComboBox.DisplayMember = "Description";
cmbSomeComboBox.ValueMember = "Code";
This assumes that MySource contains an list of objects MyObject with property "Description" and "Code".
If for some reason you change the MyObject class (get rid of either Code or description) your code will still compile fine but it will throw a argumentException on runtime. It is nicer to have a compile time error..
The only solution I could come up with is this:
Debug.Assert(newMyObject().Description.GetType() !=null,"Description property gone?");
This will give a compile time error...for now I didn't find a nicer way to come up with compile time binding without a lot of hassle.