方法 : データ CollectionView のオブジェクト間を移動する

ビューを使用すれば、同じデータ コレクションを、並べ替え、フィルター処理、またはグループ化するによってさまざまな方法で表示できます。 ビューでは現在のレコード ポインターの概念を用いており、このポインターは移動できます。 この例では、現在のオブジェクトを取得する方法と、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 でビューを使用してデータの並べ替えおよびグループ化を行う

概念

データ バインディングの概要

その他の技術情報

データ バインディングに関する「方法」トピック