如何:在数据集合视图中的对象之间导航

视图允许以不同的方式查看相同的数据集合,具体取决于排序、筛选或分组。 视图还提供当前记录指针的概念,并允许移动指针。 此示例演示如何使用 CollectionView 类中提供的功能获取当前对象以及浏览数据集合中的对象。

示例

在此示例中,myCollectionView 是一个 CollectionView 对象,它是一个绑定集合的视图。

在以下示例中,OnButton 是应用程序中 PreviousNext 按钮的事件处理程序,用户可通过这些按钮浏览数据集合。 请注意,IsCurrentBeforeFirstIsCurrentAfterLast 属性分别报告当前记录指针是否已到达列表的开头和结尾,以便相应地调用 MoveCurrentToFirstMoveCurrentToLast

视图的 CurrentItem 属性强制转换为 Order,以返回集合中的当前订单项。

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

另请参阅