Instrukcje: nawigowanie po obiektach w obiekcie Data CollectionView
Widoki umożliwiają wyświetlanie tych samych kolekcji danych na różne sposoby, w zależności od sortowania, filtrowania lub grupowania. Widoki zapewniają również koncepcję aktualnego wskaźnika rekordu i umożliwiają przenoszenie tego wskaźnika. W tym przykładzie pokazano, jak uzyskać bieżący obiekt, a także nawigować po obiektach w kolekcji danych przy użyciu funkcji dostępnych w klasie CollectionView.
Przykład
W tym przykładzie myCollectionView
jest obiektem CollectionView, który stanowi widok na powiązaną kolekcję.
W poniższym przykładzie OnButton
jest procedurą obsługi zdarzeń dla przycisków Previous
i Next
w aplikacji, które umożliwiają użytkownikowi nawigowanie po kolekcji danych. Należy pamiętać, że właściwości IsCurrentBeforeFirst i IsCurrentAfterLast informują odpowiednio, czy bieżący wskaźnik rekordu osiągnął początek lub koniec listy, tak aby MoveCurrentToFirst i MoveCurrentToLast można było wywołać w odpowiednim momencie.
Właściwość CurrentItem widoku jest rzutowana jako Order
, aby zwrócić aktualny element zamówienia w kolekcji.
//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
Zobacz też
- omówienie powiązania danych
- Sortuj dane w widoku
- filtruj dane w widoku
- Sortowanie i grupowanie danych przy użyciu widoku w XAML
- Tematy typu 'jak to zrobić'
.NET Desktop feedback