title: Binding SelectedItem vs SelectedIndex - When should I choose one over the other?
body: <p>Let's say that you have an observable collection of object type Foo, and you have a custom ListView that the user will select from.</p>
  
  <p>Your bound data object:</p>
  
  <pre><code>// property with getter / setter / INotifyPropertyChanged
  ObservableCollection&lt;Foo&gt; MyCollection; 
  </code></pre>
  
  <p>In XAML:</p>
  
  <pre><code>&lt;ListView ItemsSource={Binding MyCollection} /&gt;
  </code></pre>
  
  <p>Is it more appropriate to bind to the SelectedIndex in XAML and create the following in your data object:</p>
  
  <pre><code>int SelectedIndex { get; set; } // also raising property changed notifications
  Foo SelectedObject
  {
     get { return MyCollection[SelectedIndex]; }
  }
  </code></pre>
  
  <p>Or to create this and bind to the SelectedItem in XAML:</p>
  
  <pre><code>Foo SelectedObject { get; set; } // also raising property changed notifications
  </code></pre>
  
  <p>And why?</p>