title: ListBox SelectedItem not working
body: <p>I'm trying to load a list of objects as grids with several data and I've selected ListBox for it as you can see here:</p>
  
  <pre><code>&lt;ListBox ItemsSource="{Binding People, Mode=TwoWay}" SelectedItem="{Binding Person, Mode=TwoWay}" &gt;
    &lt;ListBox.ItemContainerStyle&gt;
       &lt;Style TargetType="ListBoxItem"&gt;
          &lt;Setter Property="HorizontalContentAlignment" Value="Stretch" /&gt;
       &lt;/Style&gt;
    &lt;/ListBox.ItemContainerStyle&gt;
    &lt;ListBox.ItemTemplate&gt;
       &lt;DataTemplate&gt;
           &lt;Grid&gt;
               &lt;Grid.ColumnDefinitions&gt;
                    &lt;ColumnDefinition Width="200"&gt;&lt;/ColumnDefinition&gt;
                    &lt;ColumnDefinition Width="50"&gt;&lt;/ColumnDefinition&gt;
                    &lt;ColumnDefinition Width="30"&gt;&lt;/ColumnDefinition&gt;
                    &lt;ColumnDefinition Width="50"&gt;&lt;/ColumnDefinition&gt;
                    &lt;ColumnDefinition Width="20"&gt;&lt;/ColumnDefinition&gt;
               &lt;/Grid.ColumnDefinitions&gt;
               &lt;TextBlock VerticalAlignment="Center" Text="{Binding name}" Grid.Column="0" TextAlignment="Right"&gt;&lt;/TextBlock&gt;
               &lt;TextBox Grid.Column="1" Margin="5,0,0,0" Height="Auto" VerticalAlignment="Center" HorizontalAlignment="Stretch" Text="{Binding age}"&gt;&lt;/TextBox&gt;
               &lt;TextBlock Grid.Column="2" Text="yo" VerticalAlignment="Center" Margin="5,0,0,0"&gt;&lt;/TextBlock&gt;
               &lt;TextBox Grid.Column="3" Margin="5,0,0,0" Height="Auto" VerticalAlignment="Center" HorizontalAlignment="Stretch" Text="{Binding baremo}"&gt;&lt;/TextBox&gt;
               &lt;TextBlock Grid.Column="4" Text="€" VerticalAlignment="Center" Margin="5,0,0,0"&gt;&lt;/TextBlock&gt;
           &lt;/Grid&gt;
      &lt;/DataTemplate&gt;
   &lt;/ListBox.ItemTemplate&gt;
  </code></pre>
  
  <p></p>
  
  <p>When I load data into People ObservableCollection everything goes right and it is shown perfectly.</p>
  
  <p><strong>The first time I select a Person, it works</strong> and it sets the property value in the VM.</p>
  
  <p>The problem comes <strong>the second time</strong> I select a different "Person". The property <strong>doesn't change</strong> and... <strong>every time I select a different one, it takes a little longer</strong> (after 10 ó 20 it is MUCH LONGER).</p>
  
  <p>Here is my ViewModel code:</p>
  
  <pre><code>#region People
          public const string PeoplePropertyName = "People";
  
          private ObservableCollection&lt;Player&gt; _People;
  
          public ObservableCollection&lt;Player&gt; People
          {
              get
              {
                  return _People;
              }
  
              set
              {
                  _People = value;
                  RaisePropertyChanged(People);
              }
          }
          #endregion
  
          #region Person
          public const string PersonPropertyName = "Person";
  
          private Player _Person;
  
          public Player Person
          {
              get
              {
                  return _Person;
              }
  
              set
              {
                  _Person = value;
                  RaisePropertyChanged(PersonPropertyName);
              }
          }
          #endregion
  </code></pre>
  
  <p>And I'm loading the People list like this:</p>
  
  <pre><code>void LoadPeople(GetPlayersEventArgs e)
  {
       if (this.People == null) this.People = new ObservableCollection&lt;Player&gt;();
  
          foreach (Player Person in e.Result)
          {
              Player newPerson = new Player();
              ...
              this.People.Add(newPerson);
          }
  
          this.SetUnBusy();
  }
  </code></pre>
  
  <p>Am I missing anything?? Thanks in advance.</p>
  
  <p>After @Ryan question I've seen everytime I try to select another value, I get a lot of:</p>
  
  <blockquote>
    <p>A first chance exception of type 'System.InvalidCastException'
    occurred in Solution</p>
  </blockquote>