Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: WPFMVVM
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 19: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)

  Print Answers RSS
0 Sergey Alexandrovich Kryukov 499
1 OriginalGriff 461
2 sanket saxena 325
3 Tadit Dash 285
4 Abhinav S 275
0 Sergey Alexandrovich Kryukov 12,159
1 OriginalGriff 7,421
2 Peter Leow 5,061
3 Abhinav S 4,073
4 Maciej Los 3,575


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