Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: WPF MVVM
As the title, I want one viewmodel shared by Several views. And I just want a copy created in the memory,sothat each view can use the same property.
Posted 12-Sep-11 20:49pm
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

Your question is very broad, and lacks a lot of details. So I cannot answer question, but I can give tell you want I would do.
 
If the multiple views are of the same type, e.g. C# editor in Visual Studio.
I would in my "main" ViewModel expose a collection of CsharpDocuments e.g. ObservableCollection<CsharpDocument> and then bind that collection to an ItemsControl.
 
If the views are of different type I would have a property in my "main" ViewModel for each ViewModel for those views and then bind the DataContext of the views to the appropriate property.
  Permalink  
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 2

The MVVM Light toolkit will do what you want. The ViewModel Locator that Laurent uses in his samples will do the trick!
 
http://www.galasoft.ch/mvvm
  Permalink  
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 3

Use following for your views :
 
this.DataContext = ViewModelName();
 
you can access the same view-model in many pages.
 
-Sagar Solanki
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



Advertise | Privacy | Mobile
Web03 | 2.8.150302.1 | Last Updated 19 Feb 2013
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100