Cómo: Navegar por los objetos de una colección de datos mediante CollectionView
Las vistas permiten que la misma colección de datos se vea de maneras diferentes, en función de la ordenación, el filtrado o la agrupación. Las vistas también proporcionan un concepto de puntero de registro actual y permiten mover el puntero. En este ejemplo se muestra cómo obtener el objeto actual y cómo navegar por los objetos de una colección de datos mediante la funcionalidad proporcionada en la clase CollectionView.
Ejemplo
En este ejemplo, myCollectionView
es un objeto CollectionView que es una vista sobre una colección enlazada.
En el ejemplo siguiente, OnButton
es un controlador de eventos para los botones Previous
y Next
de una aplicación, que son botones que permiten al usuario navegar por la colección de datos. Tenga en cuenta que las propiedades IsCurrentBeforeFirst y IsCurrentAfterLast indican si el puntero de registro actual ha llegado al principio y al final de la lista, respectivamente, de modo que MoveCurrentToFirst y MoveCurrentToLast se puedan llamar según corresponda.
La propiedad CurrentItem de la vista se convierte como Order
para devolver el elemento de orden actual de la colección.
//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
}
}
'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
Vea también
.NET Desktop feedback