title: Update BindingLIst that is binded to ComboBox, from thread other than the UI thread
body: <p>I'm trying to bind some <code>BindingList</code> to <code>ComboBox</code> control in my WPF App. But, My <code>BindingList</code> is updated from other thread than the UI thread. </p>
  
  <p>I made up a model. All you need is new empty project, with references to WindowsBase, PresentationCore, PresentationFramework, System.Xaml (or simply drop it into predefined WPF window).</p>
  
  <pre><code>using System;
  using System.ComponentModel;
  using System.Threading;
  using System.Windows;
  using System.Windows.Controls;
  using System.Windows.Data;
  
  public class MainWindow : Window
  {
      [STAThread]
      public static void Main()
      {
          new MainWindow().ShowDialog();
      }
  
      public MainWindow()
      {
          BindingList&lt;string&gt; list = new BindingList&lt;string&gt;();
          ComboBox cb = new ComboBox();
          cb.SetBinding(ComboBox.ItemsSourceProperty, new Binding() { Source = list });
          this.Content = cb;
          list.Add("Goop");
          new Thread(() =&gt;
          {
              list.Add("Zoop");
          }).Start();
      }
  }
  </code></pre>
  
  <p>In the <code>Goop</code> line, everything is OK. But, when it reach to the <code>Zoop</code> line, it thorws an exception: </p>
  
  <blockquote>
    <p>This type of CollectionView does not support changes to its
    SourceCollection from a thread different from the Dispatcher thread.</p>
  </blockquote>
  
  <p>In the real project, I can't move the <code>list.Add</code> to the UI thread, and I want to keep the Binding issue. How can it be solved? I can transit to other "List" than <code>BindingList</code>. I've tried simple <code>List&lt;string&gt;</code> but it's worse: it doesn't update at all when I add new items.</p>
  
  <p><strong>EDIT</strong></p>
  
  <p>In the reality, the adding-thread knows the list, but it doesn't know the WPF window. The list is in class with internal work, and the GUI inspects the class and view it. So, the <code>Add</code> shouldn't know about the GUI.</p>