Ok, I’ll try to get you up to speed ...
First, I really understand the issue of the model and object model exposed with WCF. They are the same? Well, I would like to make this assumption now for the sake of simplicity. So, we do not need a client side MVVM model part? Depends ...
ViewModel is located in the driver's seat. We allow it to create a client proxy for your WCF service. The objects used in the request and returned as a result make your model. Everything that you want to cache on the client side or cannot directly communicate with the user interface will be placed in the properties in the model container class. Create binding properties from these model properties for consumption in the user interface. All others will be just direct properties in your view model.
There are several important points to recognize about WCF and the level of data access. First of all, you will need a separation between your logical (information) model and your physical (base) model. One reason is to distract your database technology from the application. Another to allow slight deviations between your application / domain logic and your physical implementation. Make sure that the model classes (entities) are universal enough to support changes in the user interface without the need to change the full application stack for each change in the user interface.
It's hard to talk about this without a clear example, so for a wrapping I would like to invite you to see http://aviadezra.blogspot.com/2010/10/silverlight-mvvm-odata-wcf-data.html . I know it uses WCF and SilverLight data services. Do not be angry with me directly in order to direct this pattern and give me a thumb. This is just such a damn good example of what you want to achieve, and what to enter and what to think about creating such an application. Just replace Silverlight with WPF and Data Services with plain printed data, and the rest of the story will help you understand your thoughts.
I hope he helps you in your quest!
source share