Cómo: Navegar por los objetos de una colección de datos mediante CollectionView
Las vistas permiten ver la misma recolección de datos de maneras diferentes, según cómo se ordene, filtre o agrupe. Las vistas también proporcionan el concepto de indicador de registro actual y habilitan el movimiento del puntero. En este ejemplo se muestra cómo obtener el objeto actual y se navega por los objetos de una recolección de datos utilizando la funcionalidad proporcionada en la clase CollectionView.
Ejemplo
En este ejemplo, myCollectionView es un objeto CollectionView que es una vista de una recolección enlazada.
En el ejemplo siguiente, OnButton es un controlador de eventos para los botones Previous y Next de una aplicación, que permiten al usuario navegar por la recolección de datos. Observe que las propiedades IsCurrentBeforeFirst y IsCurrentAfterLast informan de si el indicador de registro actual ha alcanzado el principio o el final de la lista, respectivamente, para que se pueda llamar a MoveCurrentToFirst y MoveCurrentToLast, según proceda.
La propiedad CurrentItem de la vista se convierte en Order para devolver el elemento de orden actual de la recolección.
'OnButton is called whenever the Next or Previous buttons
'are clicked to change the currency
Private Sub OnButton(ByVal sender As Object, ByVal args As RoutedEventArgs)
Dim b As Button = TryCast(sender, Button)
Select Case b.Name
Case "Previous"
myCollectionView.MoveCurrentToPrevious()
If myCollectionView.IsCurrentBeforeFirst Then
myCollectionView.MoveCurrentToLast()
End If
Case "Next"
myCollectionView.MoveCurrentToNext()
If myCollectionView.IsCurrentAfterLast Then
myCollectionView.MoveCurrentToFirst()
End If
Exit Select
o = TryCast(myCollectionView.CurrentItem, Order)
' TODO: do something with the current Order o
End Select
End Sub
//OnButton is called whenever the Next or Previous buttons
//are clicked to change the currency
private void OnButton(Object sender, RoutedEventArgs args)
{
Button b = sender as Button;
switch (b.Name)
{
case "Previous":
myCollectionView.MoveCurrentToPrevious();
if (myCollectionView.IsCurrentBeforeFirst)
{
myCollectionView.MoveCurrentToLast();
}
break;
case "Next":
myCollectionView.MoveCurrentToNext();
if (myCollectionView.IsCurrentAfterLast)
{
myCollectionView.MoveCurrentToFirst();
}
break;
o = myCollectionView.CurrentItem as Order;
// TODO: do something with the current Order o
}
}
Vea también
Tareas
Cómo: Ordenar datos en una vista
Cómo: Filtrar datos en una vista
Cómo: Ordenar y agrupar datos mediante una vista en XAML
Conceptos
Información general sobre el enlace de datos