title: Filtering an ObservableCollection?
body: <p>When I bind a ListBox directly to an ObservableCollection I get the real-time updates displayed in my ListBox, but as soon as I add other LINQ methods in the mix my ListBox is no longer notified of any changes to the ObservableCollection.</p>
  
  <p>Here, let me illustrate with an example;</p>
  
  
  
  <pre class="lang-cs prettyprint-override"><code>public partial class MainPage : PhoneApplicationPage
  {
      ObservableCollection&lt;String&gt; Words = new ObservableCollection&lt;string&gt;();
  
      public MainPage()
      {
          InitializeComponent();
          listBox1.ItemsSource = Words;
      }
  
      private void AddButton_Click(object sender, RoutedEventArgs e)
      {
          Words.Add(DateTime.Now.ToString());
      }
  }
  </code></pre>
  
  <p>Here I've added a Button and a ListBox to a simple Page, and clicking the button makes the new item appear immediately in the ListBox.</p>
  
  <p>However, if I change from</p>
  
  <pre class="lang-cs prettyprint-override"><code>        listBox1.ItemsSource = Words;
  </code></pre>
  
  <p>to</p>
  
  <pre class="lang-cs prettyprint-override"><code>        listBox1.ItemsSource = Words.Where(w =&gt; w.Contains(":"));
  </code></pre>
  
  <p>the ListBox is no longer updated.</p>
  
  <p>How can I add a "filter" between my ObservableCollection and the ListBox, and still get it to update without having to set the .ItemsSource again?</p>