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

Otros recursos

Temas "Cómo..." sobre enlace de datos