방법: 데이터 수집 뷰의 개체 탐색

뷰를 사용하면 정렬, 필터링 또는 그룹화에 따라 동일한 데이터 수집을 다양한 방식으로 볼 수 있습니다. 뷰는 또한 현재 레코드 포인터 개념을 제공하고 포인터를 이동할 수 있도록 합니다. 이 예제에서는 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

참고 항목