title: Sharing Collection between ViewModels
body: <p>I've searched and nothing is helping me get to where I need to get.</p>
  
  <p>Description of my problem(s):</p>
  
  <ol>
  <li><p>We have a single dialog window which hosts multiple views (usercontrols).  Clicking next and back will move you forward and backwards in this dialog similar to a wizard.</p></li>
  <li><p>Out of the 6 dialogs, 4 of them reference the same core data.  For example we will say an ObservableCollection</p></li>
  <li><p>That being the case, I have 4 viewModels which all need to reference this same ObservableCollection.  I don't want to save and then reload the list everytime I move on to a new step in the "wizard" dialog.</p></li>
  </ol>
  
  <p>My question is what's the best/most practical way to accomplish this. </p>
  
  <p>The following things I've considered:</p>
  
  <ol>
  <li>Static class</li>
  <li>Singleton - ehhhh</li>
  <li>Passing parameters between views (although this is difficult as the nextlocation and previouslocation are very generic).</li>
  <li>Mediator pattern?  My problem with the mediator pattern is that I don't want to "communicate" between views.  I just want all of the views to share the same data source.</li>
  <li>Observer pattern?  If I'm using an ObservableCollections and implementing INotifyPropertyChanged, then I shouldn't need to notify anyone of a change should I?</li>
  </ol>
  
  <p>Please let me know additional info you might need to help me with this and I'll happily provide it.</p>
  
  <p>I'm not really looking for code examples as I am design.  Although if code examples can help explain the design, I'm all for it.</p>
  
  <p>Lastly, EventAggregator is not an option as I'm not using any frameworks (unless I'm not understanding EventAggregator correctly).</p>
  
  <p>Thanks in advance!!</p>