Click here to Skip to main content
12,955,842 members (63,530 online)
Rate this:
 
Please Sign up or sign in to vote.
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 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
Top Experts
Last 24hrsThis month
OriginalGriff 6,719
CHill60 3,550
Maciej Los 3,153
ppolymorphe 2,060
Jochen Arndt 1,975


Advertise | Privacy | Mobile
Web01 | 2.8.170525.1 | Last Updated 19 Feb 2013
Copyright © CodeProject, 1999-2017
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