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