Procedura: esplorare dati in Windows Form
Il modo più semplice di spostarsi tra i record di un'origine dati in un'applicazione Windows consiste nell'associare un componente BindingSource all'origine dati e poi nell'associare i controlli alla classe BindingSource. In seguito sarà possibile applicare il metodo di spostamento incorporato alla classe BindingSource, ad esempio MoveNext, MoveLast, MovePrevious e MoveFirst. Con questi metodi vengono adattate in maniera appropriata le proprietà Position e Current della classe BindingSource. È inoltre possibile trovare un elemento e impostarlo come elemento corrente impostando la proprietà Position.
Per incrementare la posizione in un'origine dati
Impostare la proprietà Position della classe BindingSource per i dati associati sulla posizione del record su cui spostarsi. Nell'esempio riportato di seguito viene illustrato l'utilizzo del metodo MoveNext della classe BindingSource per incrementare la proprietà Position quando si fa clic su nextButton. La classe BindingSource è associata alla tabella Customers di un dataset Northwind.
Nota
Se la proprietà Position viene impostata su un valore oltre il primo o l'ultimo record non viene generato alcun errore, perché .NET Framework non consente di impostare la posizione su un valore non incluso nelle associazioni dell'elenco. Se è importante che l'applicazione sia in grado di rilevare se è stato oltrepassato il primo o l'ultimo record, includere una logica per verificare se viene superato il numero degli elementi di dati.
Private Sub nextButton_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles nextButton.Click Me.customersBindingSource.MoveNext() End Sub
private void nextButton_Click(object sender, System.EventArgs e) { this.customersBindingSource.MoveNext(); }
Per verificare se è stato superato il primo o l'ultimo elemento
Creare un gestore eventi per l'evento PositionChanged. Nel gestore eventi è possibile verificare se i valori della posizione proposta hanno superato il numero effettivo degli elementi di dati.
Nell'esempio che segue viene illustrato come verificare se è stato raggiunto l'ultimo elemento di dati. Se ci si trova sull'ultimo elemento, il pulsante Avanti del form verrà disabilitato.
Nota
Se si modifica l'elenco in cui ci si sposta nel codice, sarà necessario riattivare il pulsante Avanti in modo che gli utenti possano spostarsi all'interno di tutto il nuovo elenco. Inoltre, l'evento PositionChanged per la specifica classe BindingSource che si sta utilizzando deve essere associato al relativo metodo di gestione degli eventi. Di seguito viene riportato un esempio di metodo per la gestione dell'evento PositionChanged:
Sub customersBindingSource_PositionChanged(ByVal sender As Object, _ ByVal e As EventArgs) If customersBindingSource.Position = _ customersBindingSource.Count - 1 Then nextButton.Enabled = False Else nextButton.Enabled = True End If End Sub
void customersBindingSource_PositionChanged(object sender, EventArgs e) { if (customersBindingSource.Position == customersBindingSource.Count - 1) nextButton.Enabled = false; else nextButton.Enabled = true; }
Per trovare un elemento e impostarlo come elemento corrente
Trovare il record che si desidera impostare come elemento corrente. A tale scopo, utilizzare il metodo Find della classe BindingSource se l'origine dati implementa l'interfaccia IBindingList. Tra le origini dati di esempio che implementano l'interfaccia IBindingList sono annoverate BindingList<T> e DataView.
Sub findButton_Click(ByVal sender As Object, ByVal e As EventArgs) _ Handles findButton.Click Dim foundIndex As Integer = customersBindingSource.Find("CustomerID", _ "ANTON") customersBindingSource.Position = foundIndex End Sub
void findButton_Click(object sender, EventArgs e) { int foundIndex = customersBindingSource.Find("CustomerID", "ANTON"); customersBindingSource.Position = foundIndex; }
Vedere anche
Concetti
Origini dati supportate da Windows Form
Notifica delle modifiche nell'associazione dati dei Windows Form
Associazione dati e Windows Form