Export (0) Print
Expand All

BindingSource.BindingComplete Event

Occurs when all the clients have been bound to this BindingSource.

Namespace:  System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

Public Event BindingComplete As BindingCompleteEventHandler

The BindingComplete event occurs after all the clients, typically controls, have been bound to the current BindingSource. The handler of this event can take the appropriate action based on the success, error, or exceptions in the binding process, by examining the BindingCompleteState property of the BindingCompleteEventArgs parameter.

For more information about handling events, see Handling and Raising Events.

The following code example demonstrates handling the BindingComplete event. To run this code, paste it into an empty code file.

Imports System
Imports System.Drawing
Imports System.Windows.Forms

Class Form1
    Inherits Form

    Private  BindingSource1 As New BindingSource()
    Private textBox1 As New TextBox()
    Private textBox2 As New TextBox()
    Private textBox3 As New TextBox()

    Public Sub New()

        'Set up the textbox controls. 
        Me.textBox1.Location = New System.Drawing.Point(82, 13)
        Me.textBox1.TabIndex = 1
        Me.textBox2.Location = New System.Drawing.Point(81, 47)
        Me.textBox2.TabIndex = 2
        Me.textBox3.Location = New System.Drawing.Point(81, 83)
        Me.textBox3.TabIndex = 3

        ' Add the textbox controls to the form 

    End Sub 

    Private WithEvents partNameBinding As Binding
    Private WithEvents partNumberBinding As Binding

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) _
        Handles Me.Load

        ' Set the DataSource of BindingSource1 to the Part type.
        BindingSource1.DataSource = GetType(Part)

        ' Bind the textboxes to the properties of the Part type,  
        ' enabling formatting.
        partNameBinding = textBox1.DataBindings.Add("Text", BindingSource1, _
            "PartName", True)
        partNumberBinding = textBox2.DataBindings.Add("Text", BindingSource1, _
            "PartNumber", True)

        'Bind the textbox to the PartPrice value with currency formatting.
        textBox3.DataBindings.Add("Text", BindingSource1, "PartPrice", _
            True, DataSourceUpdateMode.OnPropertyChanged, 0, "C")

        ' Add a new part to BindingSource1.
        BindingSource1.Add(New Part("Widget", 1234, 12.45))
    End Sub 

    ' Handle the BindingComplete event to catch errors and exceptions  
    ' in binding process. 
    Sub partNumberBinding_BindingComplete(ByVal sender As Object, _
        ByVal e As BindingCompleteEventArgs) _
        Handles partNumberBinding.BindingComplete

        If Not e.BindingCompleteState = BindingCompleteState.Success Then
            MessageBox.Show("partNumberBinding: " + e.ErrorText)
        End If 

    End Sub 

    ' Handle the BindingComplete event to catch errors and exceptions  
    ' in binding process. 
    Sub partNameBinding_BindingComplete(ByVal sender As Object, _
        ByVal e As BindingCompleteEventArgs) _
        Handles partNameBinding.BindingComplete

        If Not e.BindingCompleteState = BindingCompleteState.Success Then
            MessageBox.Show("partNameBinding: " + e.ErrorText)
        End If 

    End Sub

    <STAThread()> _
    Shared Sub Main()
        Application.Run(New Form1())
    End Sub 

End Class 

' Represents a business object that throws exceptions when invalid  
' values are entered for some of its properties. 
Public Class Part
    Private name As String 
    Private number As Integer 
    Private price As Double 

    Public Sub New(ByVal name As String, ByVal number As Integer, _
        ByVal price As Double)

        PartName = name
        PartNumber = number
        PartPrice = price
    End Sub 

    Public Property PartName() As String 
            Return name
        End Get 
        Set(ByVal value As String)
            If Value.Length <= 0 Then 
                Throw New Exception("Each part must have a name.")
                name = Value
            End If 
        End Set 
    End Property 

    Public Property PartPrice() As Double 
            Return price
        End Get 
        Set(ByVal value As Double)
            price = Value
        End Set 
    End Property 

    Public Property PartNumber() As Integer 
            Return number
        End Get 
        Set(ByVal value As Integer)
            If Value < 100 Then 
                Throw New Exception("Invalid part number." _
                    & " Part numbers must be greater than 100.")
                number = Value
            End If 
        End Set 
    End Property 
End Class

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

© 2014 Microsoft