Procedura: navigare tra gli oggetti nella visualizzazione di una raccolta dati
È possibile visualizzare una stessa raccolta dati in diversi modi, in base all'ordinamento, al filtro o al raggruppamento. Le visualizzazioni forniscono un'idea del puntatore al record corrente e consentono di spostare il puntatore. In questo esempio viene illustrato come ottenere l'oggetto corrente nonché come spostarsi tra gli oggetti in una raccolta dati utilizzando la funzionalità della classe CollectionView.
Esempio
In questo esempio, myCollectionView è un oggetto CollectionView che rappresenta una visualizzazione di un insieme ad associazione.
Nell'esempio riportato di seguito, OnButton è un gestore eventi per i pulsanti Previous e Next in un'applicazione. Tali pulsanti consentono all'utente di spostarsi nella raccolta dati. Si noti che le proprietà IsCurrentBeforeFirst e IsCurrentAfterLast segnalano se il puntatore del record corrente si trova rispettivamente all'inizio o alla fine dell'elenco in modo che MoveCurrentToFirst e MoveCurrentToLast possano essere chiamati come appropriato.
Il cast della proprietà CurrentItem della visualizzazione viene eseguito come 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 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
}
}
Vedere anche
Attività
Procedura: ordinare i dati in una visualizzazione
Procedura: filtrare i dati in una visualizzazione
Procedura: ordinare e raggruppare i dati tramite una visualizzazione di XAML
Concetti
Cenni preliminari sull'associazione dati