Nasıl yapılır: Windows Forms Verilerinde Gezinme
Bir Windows uygulamasında, bir veri kaynağında kayıtlar arasında gezinmenin en kolay yolu, bir bileşeni veri kaynağına bağlamak ve ardından denetimleri BindingSource 'ye BindingSource bağlamaktır. Daha sonra yerleşik gezinti yöntemini , ve BindingSource gibi bir üzerinde MoveNextMoveLastMovePreviousMoveFirst kullanabilirsiniz. Bu yöntemlerin kullanımı, ve PositionCurrent özelliklerini uygun şekilde BindingSource ayarlar. Ayrıca, bir öğeyi bulabilir ve özelliğini ayarerek öğeyi geçerli öğe olarak Position ayarlayın.
Bir veri kaynağında konumu artırma
Bağlı Position verileriniz için BindingSource özelliğini, gitmek için kayıt konumu olarak ayarlayın. Aşağıdaki örnek, tık olduğunda MoveNext özelliğinin BindingSource artırımı Position için
nextButtonyönteminin kullanımı göstermektedir. BindingSource, bir veri kümesiCustomerstablosuylaNorthwindilişkilendirildi.Not
özelliği ilk veya son kaydın ötesinde bir değere ayarlamak hataya neden olmaz çünkü .NET Framework konumu listenin sınırlarının dışındaki bir değere ayarlamaya Position izin vermez. Uygulamanıza ilk kaydı veya son kaydı aşıp aşmamanızı bilmek önemli ise, veri öğesi sayısını aşıp aşmayıp aşmay olmadığınızı test etmek için mantık ekleyin.
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
Sonu veya başlangıcı geçmiş olup olmadığı kontrol etmek için
Olay için bir olay PositionChanged işleyicisi oluşturun. İşleyicide, önerilen konum değerinin gerçek veri öğesi sayısını aşıp aşmadı sınayabilirsiniz.
Aşağıdaki örnek, son veri öğesine ulaşıp ulaşmama konusunda nasıl test gerçekleştirebilirsiniz? Örnekte, son öğedeysiniz, formda Sonraki düğmesi devre dışı bırakılır.
Not
Kodda gezinirken gezinen listeyi değiştirirken, kullanıcıların yeni listenin tüm uzunluğuna göz atması için Sonraki düğmesini yeniden etkinleştirmeniz gerektiğini göz atabilirsiniz. Ayrıca, üzerinde çalışmakta olduğunu özel için yukarıdaki olayın olay işleme PositionChangedBindingSource yöntemiyle ilişkilendiril olması gerektiğini de farkında olmak gerekir. Aşağıda, olayı işlemeye örnek olarak bir yöntem ve bir örnek ve ardından ve bir örnek ve bir örnek ve ardından yer alan bir örnek ve daha fazla bilgi ve daha fazla bilgi için aşağıdaki adımları PositionChanged kullanabilirsiniz:
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
Bir öğeyi bulmak ve geçerli öğe olarak ayarlamak için
Geçerli öğe olarak ayarlamak istediğiniz kaydı bulun. Veri kaynağınız Find kullanıyorsa, BindingSource bunu yöntemini kullanarak gerçekleştirebilirsiniz. IBindingList uygulayan veri kaynaklarına bazı örnekler IBindingList ve BindingList<T> 'tir. 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