Ich habe eine Liste von Datenobjekten in meiner Windows Phone 7-Anwendung namens MyObjectList
, die ObservableCollection<MyObject>
erbt. Ich behalte die Liste im Speicher in einer öffentlichen Eigenschaft von App
namens MyObjects
. Mein Ziel ist es, die Daten an eine ListBox
zu binden und sie nach MyObject.Name
sortiert zu haben.An eine sortierte ObservableCollection binden <T> in einer ListBox
Derzeit habe ich ein ListBox
in XAML mit dem Namen MyObjectsList
und der folgende Code in dem Konstruktor es zu verknüpfen:
public MyObjectListView()
{
InitializeComponent();
this.MyObjectsList.ItemsSource = ((App)App.Current).MyObjects;
}
Dies funktioniert gut. Ich füge Artikel zu MyObjects
hinzu und sie erscheinen in ListBox
. Die Daten werden jedoch nicht nach Namen sortiert, wenn sie in der Liste angezeigt werden. Ich habe versucht, die folgende Änderung der Daten zu erhalten, sortiert werden:
this.MyObjectsList.ItemsSource = ((App)App.Current).MyObjects
.OrderBy(x => x.Name)
Aber wenn ich das tue, sehe ich nicht irgendwelche Objekte in den ListBox
reflektierten sortiert oder anderweitig.
Was kann ich tun, damit, wenn ich einen Artikel zu meinem ObservableCollection
hinzufüge, er sich sortiert nach .Name
im ListBox
zeigt?
Verwendung von Linq auf einer ItemsSource deaktiviert das "Observable" -Bit der ObservableCollection –