次の方法で共有


方法: Data CollectionView 内のオブジェクト間を移動する

ビューを使用すると、並べ替え、フィルター処理、またはグループ化に応じて、同じデータ収集をさまざまな方法で表示できます。 ビューでは、現在のレコード ポインターの概念も提供され、ポインターの移動が可能になります。 この例では、CollectionView クラスで提供されている機能を使用して、現在のオブジェクトを取得し、データ コレクション内のオブジェクト間を移動する方法を示します。

この例では、myCollectionView はバインドされたコレクションのビューである CollectionView オブジェクトです。

次の例では、OnButton は、アプリケーション内の Previous ボタンと Next ボタンのイベント ハンドラーです。これは、ユーザーがデータ コレクション内を移動できるようにするボタンです。 IsCurrentBeforeFirst プロパティと IsCurrentAfterLast プロパティは、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

関連項目