Control.DataBindings Property
Gets the data bindings for the control.
[Visual Basic] Public ReadOnly Property DataBindings As ControlBindingsCollection [C#] public ControlBindingsCollection DataBindings {get;} [C++] public: __property ControlBindingsCollection* get_DataBindings(); [JScript] public function get DataBindings() : ControlBindingsCollection;
Property Value
A ControlBindingsCollection that contains the Binding objects for the control.
Remarks
Use the DataBindings property to access the ControlBindingsCollection. By adding Binding objects to the collection, you can bind any property of a control to the property of an object.
Example
The following example adds Binding objects to the 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 specified by a navigation ' path in the form : 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 specified by a ' navigation path in the form: 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 demonstrates how one control ' can be bound to another. textBox4.DataBindings.Add("Text", DateTimePicker1, "Value") 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 1. 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 (derived from 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 specified by a navigation path in the form : 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 specified by a navigation path in the form: 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 demonstrates how one control can be bound to another.*/ textBox4.DataBindings.Add("Text", DateTimePicker1,"Value"); 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 1. 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 (derived from 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 specified by a navigation path in the form : 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 specified by a navigation path in the form: 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 demonstrates how one control can be bound to another.*/ textBox4->DataBindings->Add(S"Text", DateTimePicker1,S"Value"); 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 1. 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 (derived from 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] protected function 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 specified by a navigation path in the form : 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 specified by a navigation path in the form: TableName.RelationName.ColumnName. */ DateTimePicker1.DataBindings.Add(new Binding("Value", ds, "customers.CustToOrders.OrderDate")); /* Create a new Binding import 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. */ var b : Binding = new Binding ("Text", ds, "customers.custToOrders.OrderAmount"); b.add_Parse(CurrencyStringToDecimal); b.add_Format(DecimalToCurrencyString); textBox3.DataBindings.Add(b); /*Bind the fourth TextBox to the Value of the DateTimePicker control. This demonstrates how one control can be bound to another.*/ textBox4.DataBindings.Add("Text", DateTimePicker1,"Value"); var bmText : BindingManagerBase = 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 1. 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 (derived from CurrencyManager). */ Console.WriteLine(bmCustomers.GetType().ToString()); Console.WriteLine(bmCustomers.Count); /* Get the BindingManagerBase for the Orders of the current customer import a navigation path: TableName.RelationName. */ bmOrders = this.BindingContext[ds, "customers.CustToOrders"]; }
Requirements
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
See Also
Control Class | Control Members | System.Windows.Forms Namespace | BindingContext | Binding | BindingManagerBase