title: Combobox binding itemsource to custom list and selecteditem to an instance of that list doesn't work
body: <p>I tried really different ways to make my combobox working but I'm still stuck :(</p>
  
  <p>Here is a very simplified version of my app : (just edited, sorry for mistakes)</p>
  
  <pre><code>&lt;ListView ItemsSource="{Binding People}" SelectedItem="{Binding SelectedPerson}"/&gt;
  &lt;ComboBox ItemsSource="{Binding Grades}" SelectedItem="{Binding SelectedPerson.MyGrade}" 
       DisplayMemberPath="Name"/&gt;
  </code></pre>
  
  <p>And the code behind :  </p>
  
  <pre><code>public class Person
  {
      private string name;
      public string Name
      {
          get { return name; }
          set
          {
              if (name != value)
              {
                  name = value;
                  NotifyPropertyChanged("Name");
              }
          }
      }
  
      private Grade myGrade;
      public Grade MyGrade
      {
          get { return myGrade; }
          set
          {
              if (myGrade != value)
              {
                  myGrade = value;
                  NotifyPropertyChanged("MyGrade");
              }
          }
  
      }
  
      //-- INotifyPropertyChanged implementation
  }
  public class Grade
  {
      private string name;
      public string Name
      {
          get { return name; }
          set
          {
              if (name != value)
              {
                  name = value;
                  NotifyPropertyChanged("Name");
              }
          }
      }
  
      private int prop;
      public int Prop
      {
          get { return prop; }
          set
          {
              if (prop != value)
              {
                  prop = value;
                  NotifyPropertyChanged("Prop");
              }
          }
  
      }
  
      //-- INotifyPropertyChanged implementation
  }
  public partial class MainWindow : Window
  {
      public ObservableCollection&lt;Person&gt; People { get; set; }
      public ObservableCollection&lt;Grade&gt; Grades { get; set; }
  
      private Person selectedPerson;
      public Person SelectedPerson
      {
          get { return selectedPerson; }
          set
          {
              if (selectedPerson != value)
              {
                  selectedPerson = value;
                  NotifyPropertyChanged("SelectedPerson");
              }
          }
      }
  
      public MainWindow()
      {
          InitializeComponent();
          this.DataContext = this;
  
          People = new ObservableCollection&lt;Person&gt;();
          Grades = new ObservableCollection&lt;Grade&gt;();
  
          Grades.Add(new Grade() { Name = "Grade 1", Prop = 1 });
          Grades.Add(new Grade() { Name = "Grade 2", Prop = 2 });
  
          People.Add(new Person() { Name = "guy 1", MyGrade = Grades[0] });
          People.Add(new Person() { Name = "guy 2", MyGrade = Grades[0] });
          People.Add(new Person() { Name = "guy 3", MyGrade = Grades[1] });
      }
  
      //-- INotifyPropertyChanged implementation
  }
  </code></pre>
  
  <p>The problem is that the combobox is still empty when I select an item in the listview.
  The itemsource is OK (If I click on the combobox, I can see "grade 1" and "grade 2").
  I think there is something missing to tell "the <code>Person.Grade</code> is part of the <code>Grades</code> list" but I cannot find what.</p>
  
  <p>Hope you can help me ;)</p>