title: C# ComboBox binding showing wrong selected item
body: <p>I created combobox and textblock binded to same property of viewmodel</p>
  
  <pre><code>&lt;ComboBox ItemsSource="{Binding LanguagesViewModel.Items}"
                    ItemTemplate="{StaticResource ComboBoxLanguageTemplate}"
                    SelectedItem="{Binding LanguagesViewModel.SelectedItem, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                    IsSynchronizedWithCurrentItem="True"
                    /&gt;
  &lt;TextBlock Text="{Binding LanguagesViewModel.SelectedItem.Language}" /&gt;
  </code></pre>
  
  <p>Result of this is showing me wrong selecteditem in combobox (always the first one). Textblock has always right value. When I select diferent value in combobox, textblock is properly updated. If I remove </p>
  
  <blockquote>
    <p>IsSynchronizedWithCurrentItem="True"</p>
  </blockquote>
  
  <p>then combobox is showing "empty" value. SelectedItem of Language should have right object (by debuging).</p>
  
  <p>LanguageViewModel consist obsertvablecollection of languagemodel. Language model has implemented overriding equals and gethascode (by resharper) and has one string attribute Language:</p>
  
  <pre><code>protected bool Equals(LanguageModel other)
  {
      return string.Equals(_language, other._language);
  }
  
  public override bool Equals(object obj)
  {
      if (ReferenceEquals(null, obj)) return false;
      if (ReferenceEquals(this, obj)) return true;
      if (obj.GetType() != this.GetType()) return false;
      return Equals((LanguageModel) obj);
  }
  
  public override int GetHashCode()
  {
      return (_language != null ? _language.GetHashCode() : 0);
  }
  </code></pre>
  
  <p>What to change that combobox is showing right item?</p>