title: Retaining SelectedItem when Bound ItemSource changes
body: <p>I have a list of Languages bound to a combobox ItemSource.  From time-to-time, the list of Languages can change.  When this happens, the SelectedItem is wiped out.  Because Binding is used, re-assigning the old value does not seem to work.  The combobox has</p>
  
  <pre><code>ItemSource = "{Binding Languages, IsAsync = true}"
  SelectedItem = "{Binding SelectedLanguage}"
  </code></pre>
  
  <p>In code, I have (roughly)</p>
  
  <pre><code>var prevLanguage = this.SelectedLanguage;
  this.Languages = newLanguages;
  
  if (this.Languages.Keys.Contains(prevLanguage))
    this.SelectedLanguage = prevLanguage;
  else
    this.SelectedLanguage = myDefaultLanguage;
  </code></pre>
  
  <p>This apparently happens too soon, because the combobox selected item still goes to blank.  It does not get set to either prevLanguage or myDefaultLanguage.  How can I make sure that the SelectedLanguage gets set after the binding is complete on the ItemSource?</p>