Procedura: navigare tra gli oggetti nella visualizzazione di una raccolta dati
Le visualizzazioni consentono di visualizzare la stessa raccolta dati in modi diversi, a seconda dell'ordinamento, del filtro o del raggruppamento. Le visualizzazioni forniscono anche un concetto di puntatore di record corrente e consentono lo spostamento del puntatore. In questo esempio viene illustrato come ottenere l'oggetto corrente e spostarsi tra gli oggetti in una raccolta dati usando la funzionalità fornita nella CollectionView classe .
Esempio
In questo esempio, myCollectionView
è un CollectionView oggetto che è una visualizzazione su una raccolta associata.
Nell'esempio seguente è OnButton
un gestore eventi per i Previous
pulsanti e Next
in un'applicazione, ovvero pulsanti che consentono all'utente di spostarsi nella raccolta dati. Si noti che le IsCurrentBeforeFirst proprietà e IsCurrentAfterLast indicano se il puntatore al record corrente è arrivato all'inizio e alla fine dell'elenco rispettivamente in modo che MoveCurrentToFirst e MoveCurrentToLast possa essere chiamato in modo appropriato.
Viene CurrentItem eseguito il cast della proprietà della visualizzazione come oggetto Order
per restituire l'elemento dell'ordine corrente nell'insieme.
//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
Vedi anche
.NET Desktop feedback