BindingContext.Item[] Property

Definition

Overloads

Item[Object, String]

Obtient un BindingManagerBase qui est associé aux sources de données et données membres spécifiées.Gets a BindingManagerBase that is associated with the specified data source and data member.

Item[Object]

Obtient le BindingManagerBase qui est associé à la source de données spécifiée.Gets the BindingManagerBase that is associated with the specified data source.

Item[Object, String]

Obtient un BindingManagerBase qui est associé aux sources de données et données membres spécifiées.Gets a BindingManagerBase that is associated with the specified data source and data member.

public:
 property System::Windows::Forms::BindingManagerBase ^ default[System::Object ^, System::String ^] { System::Windows::Forms::BindingManagerBase ^ get(System::Object ^ dataSource, System::String ^ dataMember); };
public System.Windows.Forms.BindingManagerBase this[object dataSource, string dataMember] { get; }
member this.Item(obj * string) : System.Windows.Forms.BindingManagerBase
Default Public ReadOnly Property Item(dataSource As Object, dataMember As String) As BindingManagerBase

Parameters

dataSource
Object

Source de données associée à un BindingManagerBase particulier.The data source associated with a particular BindingManagerBase.

dataMember
String

Chemin de navigation contenant les informations qui conduisent à un BindingManagerBase spécifique.A navigation path containing the information that resolves to a specific BindingManagerBase.

Property Value

BindingManagerBase

BindingManagerBase pour les sources de données et données membres spécifiées.The BindingManagerBase for the specified data source and data member.

Exceptions

Le dataMember spécifié n'existe pas dans la source de données.The specified dataMember does not exist within the data source.

Examples

L’exemple de code suivant montre comment utiliser l' Item[] pour récupérer les BindingManagerBase pour une liaison particulière.The following code example demonstrates how to use the Item[] to retrieve the BindingManagerBase for a particular binding. Il montre également comment gérer l’événement BindingComplete pour le BindingManagerBase afin de garantir que plusieurs contrôles liés à la même source de données restent synchronisés lorsque l’une des valeurs de contrôle est modifiée.It also shows how to handle the BindingComplete event for the BindingManagerBase to ensure multiple controls bound to the same data source remain synchronized when one of the control values is changed. Pour exécuter cet exemple, collez le code dans un Windows Form et appelez la méthode InitializeControlsAndData à partir du constructeur du formulaire ou Load méthode de gestion d’événements.To run this example, paste the code into a Windows Form and call the InitializeControlsAndData method from the form's constructor or Load event-handling method.

private void InitializeControlsAndData()
{
    // Initialize the controls and set location, size and 
    // other basic properties.
    this.dataGridView1 = new DataGridView();
    
    this.textBox1 = new TextBox();
    this.textBox2 = new TextBox();
    this.dataGridView1.ColumnHeadersHeightSizeMode =
        DataGridViewColumnHeadersHeightSizeMode.AutoSize;
    this.dataGridView1.Dock = DockStyle.Top;
    this.dataGridView1.Location = new Point(0, 0);
    this.dataGridView1.Size = new Size(292, 150);
    this.textBox1.Location = new Point(132, 156);
    this.textBox1.Size = new Size(100, 20);
    this.textBox2.Location = new Point(12, 156);
    this.textBox2.Size = new Size(100, 20);
    this.ClientSize = new Size(292, 266);
    this.Controls.Add(this.textBox2);
    this.Controls.Add(this.textBox1);
    this.Controls.Add(this.dataGridView1);

    // Declare the DataSet and add a table and column.
    DataSet set1 = new DataSet();
    set1.Tables.Add("Menu");
    set1.Tables[0].Columns.Add("Beverages");

    // Add some rows to the table.
    set1.Tables[0].Rows.Add("coffee");
    set1.Tables[0].Rows.Add("tea");
    set1.Tables[0].Rows.Add("hot chocolate");
    set1.Tables[0].Rows.Add("milk");
    set1.Tables[0].Rows.Add("orange juice");

    // Add the control data bindings.
    dataGridView1.DataSource = set1;
    dataGridView1.DataMember = "Menu";
    textBox1.DataBindings.Add("Text", set1,
        "Menu.Beverages", true, DataSourceUpdateMode.OnPropertyChanged);
    textBox2.DataBindings.Add("Text", set1,
        "Menu.Beverages", true, DataSourceUpdateMode.OnPropertyChanged);

    BindingManagerBase bmb = this.BindingContext[set1, "Menu"];
    bmb.BindingComplete += new BindingCompleteEventHandler(bmb_BindingComplete);
}

private void bmb_BindingComplete(object sender, BindingCompleteEventArgs e)
{
    // Check if the data source has been updated, and that no error has occurred.
    if (e.BindingCompleteContext ==
        BindingCompleteContext.DataSourceUpdate && e.Exception == null)

        // If not, end the current edit.
        e.Binding.BindingManagerBase.EndCurrentEdit(); ;
}
Dim WithEvents bmb As BindingManagerBase

Private Sub InitializeControlsAndData() 
    ' Initialize the controls and set location, size and 
    ' other basic properties.
    Me.dataGridView1 = New DataGridView()
    
    Me.textBox1 = New TextBox()
    Me.textBox2 = New TextBox()
    Me.dataGridView1.ColumnHeadersHeightSizeMode = _
        DataGridViewColumnHeadersHeightSizeMode.AutoSize
    Me.dataGridView1.Dock = DockStyle.Top
    Me.dataGridView1.Location = New Point(0, 0)
    Me.dataGridView1.Size = New Size(292, 150)
    Me.textBox1.Location = New Point(132, 156)
    Me.textBox1.Size = New Size(100, 20)
    Me.textBox2.Location = New Point(12, 156)
    Me.textBox2.Size = New Size(100, 20)
    Me.ClientSize = New Size(292, 266)
    Me.Controls.Add(Me.textBox2)
    Me.Controls.Add(Me.textBox1)
    Me.Controls.Add(Me.dataGridView1)
    
    ' Declare the DataSet and add a table and column.
    Dim set1 As New DataSet()
    set1.Tables.Add("Menu")
    set1.Tables(0).Columns.Add("Beverages")
    
    ' Add some rows to the table.
    set1.Tables(0).Rows.Add("coffee")
    set1.Tables(0).Rows.Add("tea")
    set1.Tables(0).Rows.Add("hot chocolate")
    set1.Tables(0).Rows.Add("milk")
    set1.Tables(0).Rows.Add("orange juice")

    ' Add the control data bindings.
    dataGridView1.DataSource = set1
    dataGridView1.DataMember = "Menu"
    textBox1.DataBindings.Add("Text", set1, "Menu.Beverages", _
        True, DataSourceUpdateMode.OnPropertyChanged)
    textBox2.DataBindings.Add("Text", set1, "Menu.Beverages", _
        True, DataSourceUpdateMode.OnPropertyChanged)

    ' Get the BindingManagerBase for this binding.
    bmb = Me.BindingContext(set1, "Menu")

End Sub

Private Sub bmb_BindingComplete(ByVal sender As Object, ByVal e As BindingCompleteEventArgs) _
    Handles bmb.BindingComplete

    ' Check if the data source has been updated, and that no error has occurred.
    If e.BindingCompleteContext = BindingCompleteContext.DataSourceUpdate _
        AndAlso e.Exception Is Nothing Then

        ' If not, end the current edit.
        e.Binding.BindingManagerBase.EndCurrentEdit()
    End If
End Sub

Remarks

Utilisez cette surcharge lorsque l' BindingManagerBase gère un jeu d’objets Binding pour lesquels la source de données contient plusieurs objets.Use this overload when the BindingManagerBase manages a set of Binding objects for which the data source contains multiple objects. Par exemple, un DataSet peut contenir plusieurs objets DataTable liés par des objets DataRelation.For example, a DataSet can contain several DataTable objects linked by DataRelation objects. Dans ce cas, le chemin de navigation est requis pour permettre au BindingContext de retourner le BindingManagerBasecorrect.In such a case, the navigation path is required to enable the BindingContext to return the correct BindingManagerBase.

Note

La propriété Item[] retourne toujours un BindingManagerBase, lorsque le paramètre dataMember est valide.The Item[] property will always return a BindingManagerBase, when the dataMember parameter is valid. Elle ne retourne jamais null.It will never return null.

Consultez la classe Binding pour obtenir la liste des sources de données possibles et pour plus d’informations sur la création de liaisons entre des contrôles et des sources de données.See the Binding class for a list of possible data sources and for information about creating bindings between controls and data sources.

Si le BindingManagerBase souhaité gère une liste, le chemin de navigation doit également se terminer par une liste.If the desired BindingManagerBase manages a list, the navigation path must also end with a list. Par exemple, le code C# suivant lie un contrôle TextBox à la date de commande dans une table de commandes.For example, the following C# code binds a TextBox control to the order date in a table of orders. Le chemin de navigation comprend le TableName, le RelationNameet le ColumnName.The navigation path includes the TableName, the RelationName, and the ColumnName. Toutefois, le BindingManagerBase doit être récupéré à l’aide de l' TableName et de RelationName (qui correspond à une liste).However, the BindingManagerBase must be retrieved using only the TableName and RelationName (which resolves to a list).

// The navigation path for a Binding ends with a property.  
textBox1.DataBindings.Add  
("Text", dataSet1, "Customers.custToOrders.OrderDate");  
// The navigation path for the BindingManagerBase ends with a list.  
BindingManagerBase bmOrders = this.BindingContext  
[dataSet1, "Customers.custToOrders"];  

Lors du retour d’un BindingManagerBase, vous devez utiliser la même source de données que le Binding et modifier uniquement le chemin de navigation.When returning a BindingManagerBase, you should use the same data source as the Binding and modify only the navigation path.

Utilisez la méthode Contains pour déterminer si le BindingManagerBase souhaité existe déjà.Use the Contains method to determine if the desired BindingManagerBase already exists.

See also

Item[Object]

Obtient le BindingManagerBase qui est associé à la source de données spécifiée.Gets the BindingManagerBase that is associated with the specified data source.

public:
 property System::Windows::Forms::BindingManagerBase ^ default[System::Object ^] { System::Windows::Forms::BindingManagerBase ^ get(System::Object ^ dataSource); };
public System.Windows.Forms.BindingManagerBase this[object dataSource] { get; }
member this.Item(obj) : System.Windows.Forms.BindingManagerBase
Default Public ReadOnly Property Item(dataSource As Object) As BindingManagerBase

Parameters

dataSource
Object

Source de données associée à un BindingManagerBase particulier.The data source associated with a particular BindingManagerBase.

Property Value

BindingManagerBase

BindingManagerBase pour la source de données spécifiée.A BindingManagerBase for the specified data source.

Examples

L’exemple de code suivant retourne trois objets BindingManagerBase : un pour un DataView, un pour un ArrayListet un pour l' DataSource d’un Binding qui appartient à un contrôle TextBox.The following code example returns three BindingManagerBase objects: one for a DataView, one for an ArrayList, and one for the DataSource of a Binding that belongs to a TextBox control.

void ReturnBindingManagerBase()
{
   
   // Get the BindingManagerBase for a DataView. 
   BindingManagerBase^ bmCustomers = this->BindingContext[ myDataView ];
   
   /* Get the BindingManagerBase for an ArrayList. */
   BindingManagerBase^ bmOrders = this->BindingContext[ myArrayList ];
   
   // Get the BindingManagerBase for a TextBox control.
   BindingManagerBase^ baseArray = this->BindingContext[ textBox1->DataBindings[ nullptr ]->DataSource ];
}

private void ReturnBindingManagerBase()
{
   // Get the BindingManagerBase for a DataView. 
   BindingManagerBase bmCustomers = 
   this.BindingContext [myDataView];

   /* Get the BindingManagerBase for an ArrayList. */ 
   BindingManagerBase bmOrders = 
   this.BindingContext[myArrayList];

   // Get the BindingManagerBase for a TextBox control.
   BindingManagerBase baseArray = 
   this.BindingContext[textBox1.DataBindings[0].DataSource];
}

Private Sub ReturnBindingManagerBase()
   ' Get the BindingManagerBase for a DataView. 
   Dim bmCustomers As BindingManagerBase = _
      Me.BindingContext(myDataView)

   ' Get the BindingManagerBase for an ArrayList.
   Dim bmOrders As BindingManagerBase = _
      Me.BindingContext(myArrayList)

   ' Get the BindingManagerBase for a TextBox control.
   Dim baseArray As BindingManagerBase = _
      Me.BindingContext(Text1.DataBindings(0).DataSource)
End Sub

Remarks

Utilisez cette surcharge si le BindingManagerBase vous souhaitez ne nécessite pas de chemin de navigation.Use this overload if the BindingManagerBase you want does not require a navigation path. Par exemple, si le BindingManagerBase gère un ensemble d’objets Binding qui utilisent un ArrayList ou DataTable comme DataSource, aucun chemin de navigation n’est requis.For example, if the BindingManagerBase manages a set of Binding objects that use an ArrayList or DataTable as the DataSource, no navigation path is required.

Note

La propriété Item[] retourne toujours un BindingManagerBaseet ne retourne jamais null.The Item[] property will always return a BindingManagerBase, and never return null.

Consultez la classe Binding pour obtenir la liste des sources de données possibles et pour plus d’informations sur la création de liaisons entre des contrôles et des sources de données.See the Binding class for a list of possible data sources and for information about creating bindings between controls and data sources.

See also

Applies to