Практическое руководство. Переход по объектам в 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
См. также
.NET Desktop feedback