Click here to Skip to main content
15,915,975 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
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

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.
 
Share this answer
 
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
 
Share this answer
 
Use following for your views :

C#
this.DataContext = ViewModelName();


you can access the same view-model in many pages.

-Sagar Solanki
 
Share this answer
 

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



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900