Jak przejść do obiektów w danych 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ż bieżącą koncepcję wskaźnika rekordu i umożliwiają przenoszenie 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 podanych w CollectionView klasie .
Przykład
W tym przykładzie jest CollectionView to obiekt, myCollectionView
który jest widokiem na powiązaną kolekcję.
W poniższym przykładzie OnButton
jest to procedura obsługi zdarzeń dla Previous
przycisków i Next
w aplikacji, które są przyciskami, które umożliwiają użytkownikowi nawigowanie po kolekcji danych. Należy pamiętać, że kontrolka IsCurrentBeforeFirst i IsCurrentAfterLast zgłasza, czy bieżący wskaźnik rekordu ma odpowiednio początek i koniec listy, tak aby MoveCurrentToFirst można MoveCurrentToLast je było wywołać odpowiednio.
Właściwość CurrentItem widoku jest rzutowania jako element Order
umożliwiający zwrócenie bieżącego elementu 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ż
.NET Desktop feedback