It might be worth looking at the Model-View-ViewModel (if you're interested/happy to use WPF particularly).
It's tweaked specifically to work with WPF and Silverlight, and makes use of databinding in order to glue everything together.
There's a number of resources on the web for finding out more, including John Gossman's introduction, and a good article by Josh Smith, who has other resources on his blog relating to MVVM.