Control.DataBindings 属性

定义

为该控件获取数据绑定。

public:
 property System::Windows::Forms::ControlBindingsCollection ^ DataBindings { System::Windows::Forms::ControlBindingsCollection ^ get(); };
public System.Windows.Forms.ControlBindingsCollection DataBindings { get; }
member this.DataBindings : System.Windows.Forms.ControlBindingsCollection
Public ReadOnly Property DataBindings As ControlBindingsCollection

属性值

一个 ControlBindingsCollection,其中包含该控件的 Binding 对象。

实现

示例

下面的代码示例将 对象添加到BindingControlBindingsCollection五个控件的 中:四TextBox个控件和一个 DateTimePicker 控件。 通过 ControlBindingsCollection 类的 DataBindings 属性来访问 Control

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( gcnew Binding( "Text",ds,"customers.custName" ) );
   textBox2->DataBindings->Add( gcnew 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( gcnew 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 = gcnew Binding( "Text",ds,"customers.custToOrders.OrderAmount" );
   b->Parse += gcnew ConvertEventHandler( this, &Form1::CurrencyStringToDecimal );
   b->Format += gcnew 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( "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() );
   
   // 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() );
   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"];
}
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"];
}
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

注解

DataBindings使用 属性访问 ControlBindingsCollection。 通过将 对象添加到 Binding 集合中,可以将控件的任何属性绑定到 对象的 属性。

适用于

另请参阅