Практическое руководство. Перемещение по объектам в 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 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
Основные понятия
Общие сведения о связывании данных