title: Listbox not updating when items added or removed from ObservableCollection
body: <p>I have a "Hello World" type application.<br>
  A listbox.ItemsSource = Players.  Players is an ObservableCollection of Player that implements INotifyPropertyChanged.  </p>
  
  <p>When I add items in the Players constructor the items are displayed fine.
  When I update an existing item the changes are reflected.
  But when I add or remove items for the ObserveableCollection the listbox does not reflect the Items added / removed.</p>
  
  <p>xaml in MainPage:</p>
  
  <pre><code>    &lt;Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"&gt;
          &lt;ListBox Name="lstPlayers" ItemsSource="{Binding}" Margin="12,66,13,24" Grid.Row="1"&gt;
              &lt;ListBox.ItemTemplate&gt;
                  &lt;DataTemplate&gt;
                      &lt;!--&lt;StackPanel Background="#FFD1D1D1"&gt;--&gt;
                      &lt;Grid Margin="0,0,0,0" Grid.RowSpan="2"&gt;
                          &lt;Grid.ColumnDefinitions&gt;
                              &lt;ColumnDefinition Width="60"/&gt;
                              &lt;ColumnDefinition Width="*"/&gt;
                          &lt;/Grid.ColumnDefinitions&gt;
                          &lt;TextBlock Grid.Column="0" Text="{Binding Number}" FontSize="48"  /&gt;
                          &lt;TextBlock Grid.Column="1" Text="{Binding Name}" FontSize="48" /&gt;
                      &lt;/Grid&gt;
                      &lt;!--&lt;/StackPanel&gt;--&gt;
                  &lt;/DataTemplate&gt;
              &lt;/ListBox.ItemTemplate&gt;
          &lt;/ListBox&gt;
          &lt;Button Content="Button" Height="95" HorizontalAlignment="Left" Margin="183,350,0,0" Name="button1" VerticalAlignment="Top" Width="260" Click="button1_Click" /&gt;
          &lt;Button Content="Button" Height="72" HorizontalAlignment="Left" Margin="198,472,0,0" Name="button3" VerticalAlignment="Top" Width="232" Click="button3_Click" /&gt;
      &lt;/Grid&gt;
  </code></pre>
  
  <p>The listbox is bound in the code behind:</p>
  
  <pre><code>  lstPlayers.ItemsSource = plys;
  </code></pre>
  
  <p>Player Class:</p>
  
  <pre><code>using System.ComponentModel;
  namespace DatabindList
  {
  public class TcrPlayer : INotifyPropertyChanged
  {
  
  
      public event PropertyChangedEventHandler PropertyChanged;
      private void NotifyPropertyChanged(string propertyName)
      {
          if (PropertyChanged != null)
          {
              PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
          }
      }
  
      private string _name;
      public string Name
      {
          get { return _name; }
          set
          {
  
              if (_name != value)
                  _name = value;
  
              NotifyPropertyChanged("Name");
  
          }
      }
     }
  }
  </code></pre>
  
  <p>Players class:</p>
  
  <pre><code>using System.Collections.Generic;
  using System.Collections.ObjectModel;
  
  namespace DatabindList
  {
  
  public class TcrPlayers : List&lt;TcrPlayer&gt; 
  {
      public ObservableCollection&lt;TcrPlayers&gt; Items { get; private set; }
  
  
  
      public TcrPlayers()
      {
          //these are displayed
          Add(new TcrPlayer { Name = "Christine"});
          Add(new TcrPlayer { Name = "Janet"});
          Add(new TcrPlayer { Name = "Ian"});
      }
  
  
      public void AddPlayer()
      {
          //THIS HAS NO EFFECT ON THE LISTBOX
          Add(new TcrPlayer { Name = "Newbie", Number = "99" });
  
      }
  
  
     }
  }
  </code></pre>
  
  <p>I can UPDATE an existing item in the list by using the code behind in the MainPage with</p>
  
  <pre><code>            var itm = lstPlayers.SelectedItem as TcrPlayer;
              itm.Name = "Fred";
  </code></pre>
  
  <p>but I can't reflect any changes made to the number of items in the Players collection.</p>