方法: Data CollectionView 内のオブジェクト間を移動する
ビューを使用すると、並べ替え、フィルター処理、またはグループ化に応じて、同じデータ収集をさまざまな方法で表示できます。 ビューでは、現在のレコード ポインターの概念も提供され、ポインターの移動が可能になります。 この例では、CollectionView クラスで提供されている機能を使用して、現在のオブジェクトを取得し、データ コレクション内のオブジェクト間を移動する方法を示します。
例
この例では、myCollectionView
はバインドされたコレクションのビューである CollectionView オブジェクトです。
次の例では、OnButton
は、アプリケーション内の Previous
ボタンと Next
ボタンのイベント ハンドラーです。これは、ユーザーがデータ コレクション内を移動できるようにするボタンです。 IsCurrentBeforeFirst プロパティと IsCurrentAfterLast プロパティは、MoveCurrentToFirst と MoveCurrentToLast を適切に呼び出すことができるように、現在のレコード ポインターがリストの先頭と末尾にそれぞれ来たかどうかを報告します。
ビューの 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
関連項目
- データ バインディングの概要
- ビューでデータを並べ替える
- ビューでデータをフィルタリングする
- XAML でビューを使用してデータを並べ替え、グループ化する
- の使い方に関するトピック
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET Desktop feedback