BindingContext.Item[] Propriété

Définition

Surcharges

Item[Object, String]

Obtient un BindingManagerBase qui est associé aux sources de données et données membres spécifiées.

Item[Object]

Obtient le BindingManagerBase qui est associé à la source de données spécifiée.

Item[Object, String]

Obtient un BindingManagerBase qui est associé aux sources de données et données membres spécifiées.

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; }
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

Paramètres

dataSource
Object

Source de données associée à un BindingManagerBase particulier.

dataMember
String

Chemin de navigation contenant les informations qui conduisent à un BindingManagerBase spécifique.

Valeur de propriété

BindingManagerBase pour les sources de données et données membres spécifiées.

Exceptions

Le dataMember spécifié n'existe pas dans la source de données.

Exemples

L’exemple de code suivant montre comment utiliser pour récupérer le Item[]BindingManagerBase pour une liaison particulière. 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 quand l’une des valeurs de contrôle est modifiée. Pour exécuter cet exemple, collez le code dans un Windows Form et appelez la InitializeControlsAndData méthode à partir du constructeur ou Load de la méthode de gestion des événements du formulaire.

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

Remarques

Utilisez cette surcharge lorsque le BindingManagerBase gère un ensemble d’objets Binding pour lesquels la source de données contient plusieurs objets. Par exemple, un DataSet peut contenir plusieurs DataTable objets liés par DataRelation des objets. Dans ce cas, le chemin de navigation est requis pour permettre de BindingContext retourner le correct BindingManagerBase.

Notes

La Item[] propriété retourne toujours un BindingManagerBase, lorsque le dataMember paramètre est valide. Il ne retournera nulljamais .

Consultez la Binding classe 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.

Si le souhaité BindingManagerBase gère une liste, le chemin de navigation doit également se terminer par une liste. Par exemple, le code C# suivant lie un TextBox contrôle à la date de commande dans une table de commandes. Le chemin de navigation inclut , TableNameet RelationName.ColumnName Toutefois, le BindingManagerBase doit être récupéré à l’aide uniquement de et TableNameRelationName (qui se résout en liste).

// 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"];  

Lorsque vous retournez un BindingManagerBase, vous devez utiliser la même source de données que le Binding et modifier uniquement le chemin de navigation.

Utilisez la Contains méthode pour déterminer si le souhaité BindingManagerBase existe déjà.

Voir aussi

S’applique à

Item[Object]

Obtient le BindingManagerBase qui est associé à la source de données spécifiée.

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

Paramètres

dataSource
Object

Source de données associée à un BindingManagerBase particulier.

Valeur de propriété

BindingManagerBase pour la source de données spécifiée.

Exemples

L’exemple de code suivant retourne trois BindingManagerBase objets : un pour un DataView, un pour un ArrayListet un pour le DataSource d’un Binding qui appartient à un TextBox contrôle.

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

Remarques

Utilisez cette surcharge si le BindingManagerBase souhaité ne nécessite pas de chemin de navigation. 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.

Notes

La Item[] propriété retourne toujours un BindingManagerBaseet ne retourne nulljamais .

Consultez la Binding classe 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.

Voir aussi

S’applique à