Tengo una lista de objetos de datos en mi aplicación Windows Phone 7 llamada MyObjectList
, que hereda ObservableCollection<MyObject>
. Guardo la lista en la memoria en una propiedad pública de App
llamada MyObjects
. Mi objetivo es vincular los datos a un ListBox
y ordenarlos por MyObject.Name
.Enlace a una ordenada ObservableCollection <T> en un ListBox
Actualmente, tengo un ListBox
en XAML con el nombre MyObjectsList
y el siguiente código en el constructor para vincularlo:
public MyObjectListView()
{
InitializeComponent();
this.MyObjectsList.ItemsSource = ((App)App.Current).MyObjects;
}
Esto funciona muy bien. Agregué artículos al MyObjects
y aparecen en el ListBox
. Sin embargo, los datos no están ordenados por nombre cuando aparece en la lista. Probé el siguiente cambio para obtener los datos que se clasifican:
this.MyObjectsList.ItemsSource = ((App)App.Current).MyObjects
.OrderBy(x => x.Name)
Pero cuando hago eso, no veo ningún objetos reflejados en el ListBox
ordenados o de otra manera.
¿Qué puedo hacer para que cuando agregue un artículo a mi ObservableCollection
, aparezca ordenado por .Name
en el ListBox
?
El uso de Linq en ItemsSource deshabilitará el bit 'Observable' de ObservableCollection –