title: A thought that needs confirming
body: <p>Using the MVVM model, how does one person get everything to communicate to where it is ment to be ?</p>
  
  <p>This would be considered the view</p>
  
  <pre><code>public partial class WMIControl : UserControl
  {
        this.datacontext = new WMIViewModel() { };
  }
  </code></pre>
  
  <p>Here is the ViewModel</p>
  
  <pre><code>public class WMIViewModel : WMIModel, INotifyPropertyChanged
  {
  
  }
  </code></pre>
  
  <p>I have Put the :WMIModel there so i can access all functions and stored data in the model, is this correct?
  Here i have put all the bound property fields the perform functionality here, For Example when a checkbox is clicked</p>
  
  <pre><code>public string ComboBox_SelectedItem
  {
      get { return _ComboBox_SelectedItem; }
      set
         {
           _ComboBox_SelectedItem = value;
  
           //Lets do stuff here...
  
           NotifyPropertyChanged("ComboBox_SelectedItem");
         }
  }
  </code></pre>
  
  <p>I thought the whole point in this type of model is to put all bindings in this part of the code? please advise.</p>
  
  <p>Here is the model</p>
  
  <pre><code>public class WMIModel
  {
  }
  </code></pre>
  
  <p>here i assume that we put properties  but they are not bound. the ViewModel gets the data from the Model stores it into the ViewModel properties that are bound to the View</p>
  
  <p>Im probably way off base here, but i cannot figure out how everything interacts, i thought i had it worked out alright until i introduced a background worker into the mix. and then it seems that it didn't really belong anywhere. in the Model it works to a certain extent however i had to bound the property from the View to the Model so users could see the Data Populate in my TreeView.
  If i put it into the ViewModel, then it is getting information from multiple computers (their WMI) when this is clearly a task for the model.</p>
  
  <p>I Apologise if this seems stupid.</p>
  
  <p>So to recap the questions are.</p>
  
  <p>How do i setup View/ViewModel/Model to communicate with each other (Interfaces, class inheritence something else?)
  a simple diagram including example code would be epic.</p>
  
  <p>Where does the Background worker really belong, ViewModel or Model.</p>
  
  <p>Are all bound Collections and Bound Functions (such as IsSelected) Ment to be in the ViewModel</p>
  
  <p>Thank you in advance</p>