title: Sending a ViewModel Instance To another ViewModel Constructor
body: <pre><code>var sharedViewModel=new SharedViewModel;
  
  var viewModel1 = new ViewModel1(ref sharedViewModel)
  var viewModel2 = new ViewModel2(ref sharedViewModel)
  var viewModel3 = new ViewModel3(ref sharedViewModel)
  </code></pre>
  
  <p>will there be a difference if i do</p>
  
  <pre><code>var viewModel1 = new ViewModel1(sharedViewModel)
  var viewModel2 = new ViewModel2(sharedViewModel)
  var viewModel3 = new ViewModel3(sharedViewModel)
  </code></pre>
  
  <p><code>ViewModel1,ViewModel2,ViewModel3</code> will be doing changes to the <code>SharedViewModel</code> instance, is there a difference between <code>ref SharedViewModel</code> and <code>SharedViewModel</code> in this case?</p>
  
  <p>Edit:
  Example of what will be inside my ViewModel1,ViewModel2,ViewModel3 classes</p>
  
  <pre><code>private SharedViewModel sharedvm;
  
  Public ViewModel(SharedViewModel sharedViewModel)
   {
  sharedvm=sharedViewModel;
  sharedvm.Collection.Add(new object());
   }
  
  private doSomthing()
   {
  sharedvm.Collection.RemoveAt(0);
   }
  </code></pre>
  
  <p>now the question is if i add an object to my <code>sharedvm</code> collection, does that mean that i am adding an object to my <code>sharedViewModel</code> collection?</p>
  
  <p>what about if i call the doSomthing method, will the changes reflect on my sharedViewModel?</p>