windows-8 - para - universal crt kb2999226 windows 8
Crear una vista de colección ordenada en WinRT (2)
Desafortunadamente, no hay soporte para ordenar una vista de colección en Win8 (ni filtrado ni agrupamiento). La única forma de hacerlo es manipular el origen de datos directamente y luego asignarlo a la propiedad Fuente.
Esto se ha discutido como una mejora para el plazo posterior a Win8. Ojalá tuviera mejores noticias :)
¿Alguien ha intentado crear una vista que ordene una colección? La interfaz de ICollectionView está presente y afirma tener las mismas responsabilidades que su contraparte WPF / SL (clasificación, paginación, filtrado), sin embargo, a menos que haya omitido algo, no hay métodos / propiedades de clasificación en la interfaz .
Me interesaría saber cómo tomar una colección de artículos y luego ordenarlos a través de una vista en WinRT.
Tenga en cuenta, sé que puedo hacerlo manualmente, sin embargo, quiero ver cómo una colección ordenada interactúa con las transiciones del tema de WinRT que aparecen para agregar efectos visuales cuando se realiza la clasificación.
Linq parece ser la forma sugerida ahora que Sort and Filter se ha ido sin permiso.
Para que puedas adoptar algo como esto en tu modelo:
private MyDataSourceProvider dataSource;
private ObservableCollection<MyType> sortedDataBackingField;
public ObservableCollection<MyType> SortedData
{
get
{
return sortedDataBackingField;
}
set
{
sortedDataBackingField = value;
NotifyPropertyChanged("SortedData");
}
}
public void SortByName()
{
SortedData = new ObservableCollection<MyType>(dataSource.Entities.OrderBy(
entity => entity.Name));
}
public void SortByAge()
{
SortedData = new ObservableCollection<MyType>(dataSource.Entities.OrderBy(
entity => entity.Age));
}
Enganche SortByName y SortByAge a su UI en el patrón de su elección, y simplemente conéctese a la propiedad SortedData:
<ItemsControl ItemsSource=”{Binding SortedData}”/>
Editar: con referencia a las transiciones, debe encontrar que este enfoque desencadenará AddDeleteThemeTransition para los elementos que ha ordenado; solo agregue algo como esto dentro de ItemsControl:
<ItemsControl.ItemContainerTransitions>
<TransitionCollection>
<AddDeleteThemeTransition></AddDeleteThemeTransition>
</TransitionCollection>
</ItemsControl.ItemContainerTransitions>