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

使用视图可以用不同的方式(包括排序、筛选或分组)查看同一数据集合。 此外,视图还提供了当前记录指针概念,并可移动该指针。 本示例演示如何获取当前对象,以及如何使用 CollectionView 类所提供的功能在数据集合中的对象之间导航。

示例

在本示例中,myCollectionView 为 CollectionView 对象,该对象是建立在绑定集合上的视图。

在下面的示例中,OnButton 是应用程序中 Previous 和 Next 按钮的事件处理程序,用户可以使用这两个按钮导航数据集合。 请注意,IsCurrentBeforeFirstIsCurrentAfterLast 属性可分别报告当前记录指针是否到达列表的开头和结尾,以便相应地调用 MoveCurrentToFirstMoveCurrentToLast

该视图的 CurrentItem 属性会强制转换为 Order,以返回该集合中的当前顺序项。

    '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 
      }
  }

请参见

任务

如何:在视图中对数据进行排序

如何:筛选视图中的数据

如何:在 XAML 中使用视图对数据进行排序和分组

概念

数据绑定概述

其他资源

数据绑定帮助主题