Condividi tramite


Procedura: Navigare tra gli oggetti in una CollectionView di dati

Le visualizzazioni consentono di visualizzare la stessa raccolta dati in modi diversi, a seconda dell'ordinamento, del filtro o del raggruppamento. Le visualizzazioni forniscono anche una funzionalità di puntatore di record corrente e consentono di spostare il puntatore. In questo esempio viene illustrato come ottenere l'oggetto corrente e spostarsi tra gli oggetti in una raccolta dati usando la funzionalità fornita nella classe CollectionView.

Esempio

In questo esempio, myCollectionView è un oggetto CollectionView che è una vista su una raccolta associata.

Nell'esempio seguente OnButton è un gestore eventi per i pulsanti Previous e Next in un'applicazione, ovvero pulsanti che consentono all'utente di spostarsi nella raccolta dati. Si noti che le proprietà IsCurrentBeforeFirst e IsCurrentAfterLast indicano se il puntatore al record corrente è giunto rispettivamente all'inizio e alla fine dell'elenco in modo che MoveCurrentToFirst e MoveCurrentToLast possano essere chiamati in modo appropriato.

Viene eseguito il cast della proprietà CurrentItem della visualizzazione come Order per restituire l'elemento dell'ordine corrente nell'insieme.

//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

Vedere anche