Gewusst wie: Navigieren durch die Objekte in einer Datenauflistungsansicht

Ansichten ermöglichen es, die gleiche Datensammlung je nach Sortierung, Filterung oder Gruppierung auf unterschiedliche Weise anzuzeigen. Ansichten bieten außerdem das Konzept eines aktuellen Datensatzzeigers und ermöglichen das Verschieben des Zeigers. In diesem Beispiel wird gezeigt, wie Sie das aktuelle Objekt abrufen und durch die Objekte in einer Datensammlung navigieren, indem Sie die in der CollectionView-Klasse bereitgestellten Funktionen verwenden.

Beispiel

In diesem Beispiel ist myCollectionView ein CollectionView-Objekt, das eine Ansicht einer gebundenen Auflistung darstellt.

Im folgenden Beispiel ist OnButton ein Ereignishandler für die Schaltflächen Previous und Next in einer Anwendung, die dem Benutzer die Navigation in der Datensammlung ermöglichen. Beachten Sie, dass die Eigenschaften IsCurrentBeforeFirst und IsCurrentAfterLast melden, ob der aktuelle Datensatzzeiger zum Anfang bzw. Ende der Liste gelangt ist, damit entsprechend MoveCurrentToFirst und MoveCurrentToLast aufgerufen werden können.

Die CurrentItem-Eigenschaft der Ansicht erfährt eine Typumwandlung in ein Order-Element, um das aktuelle Bestellelement in der Auflistung zurückzugeben.

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

Weitere Informationen