Binden von SelectedItem vs SelectedIndex - Wann sollte ich eines vor dem anderen auswählen?

Nehmen wir an, Sie haben eine beobachtbare Sammlung des Objekttyps Foo und eine benutzerdefinierte ListView, aus der der Benutzer auswählen kann.

Ihr gebundenes Datenobjekt:

// property with getter / setter / INotifyPropertyChanged
ObservableCollection<Foo> MyCollection; 

In XAML:

<ListView ItemsSource={Binding MyCollection} />

Ist es sinnvoller, in XAML eine Bindung zum SelectedIndex herzustellen und in Ihrem Datenobjekt Folgendes zu erstellen:

int SelectedIndex { get; set; } // also raising property changed notifications
Foo SelectedObject
{
   get { return MyCollection[SelectedIndex]; }
}

Oder, um dies zu erstellen und an das SelectedItem in XAML zu binden:

Foo SelectedObject { get; set; } // also raising property changed notifications

Und warum