title: View does not update with changing viewModel
body: <p>I have a userControl named <code>SensorControl</code> which I want to bind its dataContext to a viewModel class named <code>SensorModel</code>.
  The binding is successful and the <strong>initial values</strong> of viewModel is visible in the userControl, but the problem is that when I <strong>change</strong> the viewModel's properties, the <strong>userControl does not update</strong>, and I have to manually update that (by assigning null to its dataContext and assigning the viewModel again).
  Here is a simplified example of my code.</p>
  
  <p>SensorControl.xml:</p>
  
  <pre><code>&lt;UserControl ...[other attributes]... DataContext={Binding Model}&gt;
  .
  .
  .
  &lt;Label Content="{Binding Title}"/&gt;
  .
  .
  .
  &lt;/UserControl&gt;
  </code></pre>
  
  <p>SensorControl.xml.cs (code-behind):</p>
  
  <pre><code>public partial class SensorControl : UserControl
  {
      public SensorModel model;
  
      public SensorModel Model
      {
          get { return model; }
          set { model = value; }
      }
      public SensorControl(SensorModel sm)
      {
          Model = sm;
      }
  }
  </code></pre>
  
  <p>MainWindow.xml.cs:</p>
  
  <pre><code>public partial class MainWindow : Window
  {
      public SensorModel sensorModel_1;
      public SensorControl sensorControl_1;
  
      public MainWindow()
      {
          InitializeComponent();
          sensorModel_1 = new SensorModel(...[some arguments]...);
          sensorControl_1 = new SensorControl(sensorModel_1);
          mainGrid.Children.Add(sensorControl_1);
      }
      private void Button_Click(object sender, RoutedEventArgs e)
      {
          sensorModel_1.Title = "myTitle";
          //The UserControl does not update
      }
  </code></pre>
  
  <p>0) I implemented <code>INotifyPropertyChanged</code> in <code>SensorModel</code></p>
  
  <p>1) The reason I need this, is that there is only one single concept of 'Sensor' in my project (it is a real electronic sensor) and therefore I have a single model for it (that deal with the real sensor, the database, etc), but in the UI I have multiple userControls for presenting different aspects of Sensor. So I have to create one instance of model (SensorModel) for each real sensor, and multiple userControls must bind to that (each one uses different parts of model).</p>
  
  <p>2) I'm not that new to WPF, but I'm kind of new to MVVM and it's possible that I misunderstand something essential, so I would appreciate if someone could clearly explain the correct approach.</p>
  
  <p>Thanks in advance</p>