ControlBindingsCollection Class
Represents the collection of data bindings for a control.
For a list of all members of this type, see ControlBindingsCollection Members.
System.Object
System.MarshalByRefObject
System.Windows.Forms.BaseCollection
System.Windows.Forms.BindingsCollection
System.Windows.Forms.ControlBindingsCollection
[Visual Basic] Public Class ControlBindingsCollection Inherits BindingsCollection [C#] public class ControlBindingsCollection : BindingsCollection [C++] public __gc class ControlBindingsCollection : public BindingsCollection [JScript] public class ControlBindingsCollection extends BindingsCollection
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Remarks
Simple data binding is accomplished by adding Binding objects to a ControlBindingsCollection. Any object that inherits from the Control class can access the ControlBindingsCollection through the DataBindings property. For a list of Windows controls that support data binding, see the Binding class.
The ControlBindingsCollection contains standard collection methods such as Add, Clear, and Remove.
To get the control that the ControlBindingsCollection belongs to, use the Control property.
Example
[Visual Basic, C#, C++] The following example adds Binding objects to a ControlBindingsCollection of five controls--four TextBox controls and a DateTimePicker control. The ControlBindingsCollection is accessed through the DataBindings property of the Control class.
[Visual Basic] Protected Sub BindControls() ' Create two Binding objects for the first two TextBox ' controls. The data-bound property for both controls ' is the Text property. The data source is a DataSet ' (ds). The data member is the navigation path: ' TableName.ColumnName. textBox1.DataBindings.Add _ (New Binding("Text", ds, "customers.custName")) textBox2.DataBindings.Add _ (New Binding("Text", ds, "customers.custID")) ' Bind the DateTimePicker control by adding a new Binding. ' The data member of the DateTimePicker is a navigation path: ' TableName.RelationName.ColumnName. DateTimePicker1.DataBindings.Add _ (New Binding("Value", ds, "customers.CustToOrders.OrderDate")) ' Create a new Binding using the DataSet and a ' navigation path(TableName.RelationName.ColumnName). ' Add event delegates for the Parse and Format events to ' the Binding object, and add the object to the third ' TextBox control's BindingsCollection. The delegates ' must be added before adding the Binding to the ' collection; otherwise, no formatting occurs until ' the Current object of the BindingManagerBase for ' the data source changes. Dim b As New Binding("Text", ds, "customers.custToOrders.OrderAmount") AddHandler b.Parse, AddressOf CurrencyStringToDecimal AddHandler b.Format, AddressOf DecimalToCurrencyString textBox3.DataBindings.Add(b) ' Bind the fourth TextBox to the Value of the ' DateTimePicker control. This demonstates how one control ' can be data-bound to another. textBox4.DataBindings.Add("Text", DateTimePicker1, "Value") ' Get the BindingManagerBase for the textBox4 Binding. Dim bmText As BindingManagerBase = Me.BindingContext(DateTimePicker1) ' Print the Type of the BindingManagerBase, which is ' a PropertyManager because the data source ' returns only a single property value. Console.WriteLine(bmText.GetType().ToString()) ' Print the count of managed objects, which is one. Console.WriteLine(bmText.Count) ' Get the BindingManagerBase for the Customers table. bmCustomers = Me.BindingContext(ds, "Customers") ' Print the Type and count of the BindingManagerBase. ' Because the data source inherits from IBindingList, ' it is a RelatedCurrencyManager (a derived class of ' CurrencyManager). Console.WriteLine(bmCustomers.GetType().ToString()) Console.WriteLine(bmCustomers.Count) ' Get the BindingManagerBase for the Orders of the current ' customer using a navigation path: TableName.RelationName. bmOrders = Me.BindingContext(ds, "customers.CustToOrders") End Sub [C#] protected void BindControls() { /* Create two Binding objects for the first two TextBox controls. The data-bound property for both controls is the Text property. The data source is a DataSet (ds). The data member is the navigation path: TableName.ColumnName. */ textBox1.DataBindings.Add(new Binding ("Text", ds, "customers.custName")); textBox2.DataBindings.Add(new Binding ("Text", ds, "customers.custID")); /* Bind the DateTimePicker control by adding a new Binding. The data member of the DateTimePicker is a navigation path: TableName.RelationName.ColumnName. */ DateTimePicker1.DataBindings.Add(new Binding("Value", ds, "customers.CustToOrders.OrderDate")); /* Create a new Binding using the DataSet and a navigation path(TableName.RelationName.ColumnName). Add event delegates for the Parse and Format events to the Binding object, and add the object to the third TextBox control's BindingsCollection. The delegates must be added before adding the Binding to the collection; otherwise, no formatting occurs until the Current object of the BindingManagerBase for the data source changes. */ Binding b = new Binding ("Text", ds, "customers.custToOrders.OrderAmount"); b.Parse+=new ConvertEventHandler(CurrencyStringToDecimal); b.Format+=new ConvertEventHandler(DecimalToCurrencyString); textBox3.DataBindings.Add(b); /*Bind the fourth TextBox to the Value of the DateTimePicker control. This demonstates how one control can be data-bound to another.*/ textBox4.DataBindings.Add("Text", DateTimePicker1,"Value"); // Get the BindingManagerBase for the textBox4 Binding. BindingManagerBase bmText = this.BindingContext [DateTimePicker1]; /* Print the Type of the BindingManagerBase, which is a PropertyManager because the data source returns only a single property value. */ Console.WriteLine(bmText.GetType().ToString()); // Print the count of managed objects, which is one. Console.WriteLine(bmText.Count); // Get the BindingManagerBase for the Customers table. bmCustomers = this.BindingContext [ds, "Customers"]; /* Print the Type and count of the BindingManagerBase. Because the data source inherits from IBindingList, it is a RelatedCurrencyManager (a derived class of CurrencyManager). */ Console.WriteLine(bmCustomers.GetType().ToString()); Console.WriteLine(bmCustomers.Count); /* Get the BindingManagerBase for the Orders of the current customer using a navigation path: TableName.RelationName. */ bmOrders = this.BindingContext[ds, "customers.CustToOrders"]; } [C++] protected: void BindControls() { /* Create two Binding objects for the first two TextBox controls. The data-bound property for both controls is the Text property. The data source is a DataSet (ds). The data member is the navigation path: TableName.ColumnName. */ textBox1->DataBindings->Add(new Binding (S"Text", ds, S"customers.custName")); textBox2->DataBindings->Add(new Binding (S"Text", ds, S"customers.custID")); /* Bind the DateTimePicker control by adding a new Binding. The data member of the DateTimePicker is a navigation path: TableName.RelationName.ColumnName. */ DateTimePicker1->DataBindings->Add(new Binding(S"Value", ds, S"customers.CustToOrders.OrderDate")); /* Create a new Binding using the DataSet and a navigation path(TableName.RelationName.ColumnName). Add event delegates for the Parse and Format events to the Binding object, and add the object to the third TextBox control's BindingsCollection. The delegates must be added before adding the Binding to the collection; otherwise, no formatting occurs until the Current object of the BindingManagerBase for the data source changes. */ Binding* b = new Binding (S"Text", ds, S"customers.custToOrders.OrderAmount"); b->Parse+=new ConvertEventHandler(this, &Form1::CurrencyStringToDecimal); b->Format+=new ConvertEventHandler(this, &Form1::DecimalToCurrencyString); textBox3->DataBindings->Add(b); /*Bind the fourth TextBox to the Value of the DateTimePicker control. This demonstates how one control can be data-bound to another.*/ textBox4->DataBindings->Add(S"Text", DateTimePicker1,S"Value"); // Get the BindingManagerBase for the textBox4 Binding. BindingManagerBase* bmText = this->BindingContext ->Item[DateTimePicker1]; /* Print the Type of the BindingManagerBase, which is a PropertyManager because the data source returns only a single property value. */ Console::WriteLine(bmText->GetType()); // Print the count of managed objects, which is one. Console::WriteLine(bmText->Count); // Get the BindingManagerBase for the Customers table. bmCustomers = this->BindingContext->get_Item(ds, S"Customers"); /* Print the Type and count of the BindingManagerBase. Because the data source inherits from IBindingList, it is a RelatedCurrencyManager (a derived class of CurrencyManager). */ Console::WriteLine(bmCustomers->GetType()); Console::WriteLine(bmCustomers->Count); /* Get the BindingManagerBase for the Orders of the current customer using a navigation path: TableName.RelationName. */ bmOrders = this->BindingContext->get_Item(ds, S"customers.CustToOrders"); }
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Namespace: System.Windows.Forms
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
See Also
ControlBindingsCollection Members | System.Windows.Forms Namespace