You might consider using the Model-View-View model MVVM pattern. It is a derivative of MVC, but is designed / intended to be used in exactly the situation you describe. There is a wealth of information on the MSDN site if you don't feel like googling it.
MVVM facilitates a clear separation of the development of the graphical user interface
(either as markup language or GUI code) from the development of the business logic or back
end logic known as the model (also known as the data model to distinguish it from the view
model). The view model of MVVM is a value converter meaning that the view model is
responsible for exposing the data objects from the model in such a way that those objects
are easily managed and consumed. In this respect, the view model is more model than view,
and handles most if not all of the view’s display logic (though the demarcation between
what functions are handled by which layer is a subject of ongoing discussion and
exploration). The view model may also implement a mediator pattern organising access to the
backend logic around the set of use cases supported by the view.