title: ListBox not updated when items added to data source
body: <p>I have a <code>ListBox</code> where items are filtered based on text entered in a textbox (and when enter is pressed):</p>
  
  <pre><code>&lt;TextBox DockPanel.Dock="Top" Margin="0,0,0,20" Width="200" HorizontalAlignment="Left" Text="{Binding Path=FilterText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"&gt;
     &lt;TextBox.InputBindings&gt;
        &lt;KeyBinding Command="{Binding Path=FilterSearchCommand}" Key="Enter" /&gt;
     &lt;/TextBox.InputBindings&gt;
  &lt;/TextBox&gt;
  &lt;ListBox DockPanel.Dock="Bottom" Name="lbItems" ItemsSource="{Binding Path=MyList, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Stretch"&gt;
     &lt;ListBox.ItemTemplate&gt;
        &lt;DataTemplate&gt;
           &lt;StackPanel Width="{Binding ActualWidth, ElementName=lbItems}" Cursor="Hand" Margin="10,10,0,10" VerticalAlignment="Center" MouseLeftButtonUp="UIElement_OnMouseLeftButtonUp"&gt;
              &lt;TextBlock Text="{Binding Path=Title}"/&gt;
           &lt;/StackPanel&gt;
        &lt;/DataTemplate&gt;
     &lt;/ListBox.ItemTemplate&gt;
  &lt;/ListBox&gt;
  </code></pre>
  
  <p>When ENTER is pressed in the textbox, the following command is executed:</p>
  
  <pre><code>FilterSearchCommand = new RelayCommand(() =&gt; {
   MyList = new ObservableCollection &lt; MyObject &gt; (MyList.Where(x =&gt; x.Title.IndexOf(FilterText, StringComparison.InvariantCultureIgnoreCase) &gt;= 0).ToList());
  });
  
  public RelayCommand FilterSearchCommand {
   get;
  }
  public string FilterText {
   get;
   set;
  }
  public ObservableCollection &lt; MyObject &gt; MyList {
   get;
   set;
  }
  </code></pre>
  
  <p>Basically on entering the command, the ObservableCollection is successfully updated, however the items in the list box remain unchanged.</p>
  
  <p>Any ideas?</p>