title: DataGrid not updating with ObservableCollection
body: <p>I have implemented a <code>DataGrid</code> as follows:</p>
  
  <pre><code>&lt;DataGrid Name="grdSignals" Grid.Column="1" ItemsSource="{Binding}"  AutoGenerateColumns="False"&gt;
      &lt;DataGrid.Columns&gt;
          &lt;DataGridTextColumn Header="Signal Name" Binding="{Binding SignalName}"/&gt;
          &lt;DataGridTextColumn Header="Value" Binding="{Binding SignalValue}" /&gt;
      &lt;/DataGrid.Columns&gt;
  &lt;/DataGrid&gt;
  </code></pre>
  
  <p>The following is the <code>Class</code> where I implemented the properties used in an <code>ObservableCollection</code>:</p>
  
  <pre><code>namespace Test
  {
      public partial class MyMain : UserControl
      {        
          public ObservableCollection&lt;Signals&gt; ocSignalNames;
          Signals time, mode;
  
          public MyMain()
          {
              InitializeComponent();    
              ocSignalNames = new ObservableCollection&lt;Signals&gt;();            
              time = new Signals() { SignalName = "Time", SignalValue = "" };
              mode = new Signals() { SignalName = "Mode", SignalValue = "" };
              ocSignalNames.Add(time);
              ocSignalNames.Add(mode);
              grdSignals.DataContext = ocSignalNames;
          }
      }
  
      public class Signals : INotifyPropertyChanged
      {
          string _signalName, _signalValue;
          public string SignalName
          {
              get
              {
                  return _signalName;
              }
              set
              {
                  _signalName = value;
              }
          }
  
          public string SignalValue
          {
              get
              {
                  return _signalValue;
              }
              set
              {
                  _signalValue = value;
                  OnPropertyChanged(SignalValue);
              }
          }
  
          public event PropertyChangedEventHandler PropertyChanged;
  
          private void OnPropertyChanged(string propertyName)
          {
              if (PropertyChanged != null)
              {
                  PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
              }
          }
      }
  }
  </code></pre>
  
  <p>After debugging it, I found that the <code>ocSignalNames</code> is getting updated when its items change. But the changes are not getting reflected in the <code>DataGrid</code>. I am updating the Items in a thread like this:</p>
  
  <pre><code>time.SignalValue = iTest1.ToString();
  mode.SignalValue = iTest2.ToString();
  </code></pre>
  
  <p>What am I missing out? </p>