Procedura: Esplorare i dati nei Windows Forms
In un'applicazione Windows, il modo più semplice per spostarsi tra i record in un'origine dati consiste nell'associare un componente BindingSource all'origine dati e quindi associare i controlli al BindingSource. È quindi possibile usare il metodo di spostamento predefinito nel BindingSource come MoveNext, MoveLast, MovePrevious e MoveFirst. L'uso di questi metodi regola le proprietà Position e Current del BindingSource in modo appropriato. È anche 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 del BindingSource per i dati associati alla posizione del record a cui andare. Nell'esempio seguente viene illustrato l'utilizzo del metodo MoveNext del BindingSource per incrementare la proprietà Position quando si fa clic sul
nextButton
. Il BindingSource è associato alla tabellaCustomers
di un set di datiNorthwind
.Nota
L'impostazione della proprietà Position su un valore superiore al primo o all'ultimo record non genera un errore, perché .NET Framework non consente di impostare la posizione su un valore esterno ai limiti dell'elenco. Se è importante nell'applicazione sapere se si è superato il primo o l'ultimo record, includere la logica per verificare se si supererà il conteggio degli elementi.
private void nextButton_Click(object sender, System.EventArgs e) { this.customersBindingSource.MoveNext(); }
Private Sub nextButton_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles nextButton.Click Me.customersBindingSource.MoveNext() End Sub
Per verificare se hai superato la fine o l'inizio
Creare un gestore eventi per l'evento PositionChanged. Nel gestore è possibile verificare se il valore della posizione proposta ha superato il conteggio effettivo degli elementi dati.
Nell'esempio seguente viene illustrato come verificare se è stato raggiunto l'ultimo elemento dati. Nell'esempio, se si è all'ultimo elemento, il pulsante Successivo sul modulo è disabilitato.
Nota
Tenere presente che, se si modifica l'elenco nel codice, è necessario riabilitare il pulsante Avanti, in modo che gli utenti possano esplorare l'intera lunghezza del nuovo elenco. Tenere inoltre presente che l'evento PositionChanged sopra menzionato per l'BindingSource specifico con cui si sta lavorando deve essere associato con il suo metodo di gestione degli eventi. Di seguito è riportato un esempio di metodo per la gestione dell'evento PositionChanged:
void customersBindingSource_PositionChanged(object sender, EventArgs e) { if (customersBindingSource.Position == customersBindingSource.Count - 1) nextButton.Enabled = false; else nextButton.Enabled = true; }
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
Per trovare un elemento e impostarlo come elemento corrente
Trova il record che desideri impostare come elemento corrente. Puoi fare ciò usando il metodo Find di BindingSource, se l'origine dei dati implementa IBindingList. Alcuni esempi di origini dati che implementano IBindingList sono BindingList<T> e DataView.
void findButton_Click(object sender, EventArgs e) { int foundIndex = customersBindingSource.Find("CustomerID", "ANTON"); customersBindingSource.Position = foundIndex; }
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
Vedere anche
- origini dati supportate da Windows Form
- notifica delle modifiche in di data binding di Windows Form
- Data Binding e Windows Forms
- Data binding di Windows Forms
.NET Desktop feedback