I am thinking about how an application can be written to work on both Windows 7 Phone and IPhone, one option is to use MonoTouch and structure the app with MVVM, then only the views will need to be different between the platforms.
However MonoTouch does not seem to support data binding.
When (if) data binding support is added to MonoTouch, please provide an answer to this quesions and I will change the excepted answer.
see also Is there any data binding mechanism available for iOS?