Freigeben über


BindingContext.Item[] Eigenschaft

Definition

Ruft eine BindingManagerBase ab.

Überlädt

Item[Object, String]

Ruft eine BindingManagerBase ab, die der angegebenen Datenquelle und dem angegebenen Datenmember zugeordnet ist.

Item[Object]

Ruft die BindingManagerBase ab, die der angegebenen Datenquelle zugeordnet ist.

Item[Object, String]

Ruft eine BindingManagerBase ab, die der angegebenen Datenquelle und dem angegebenen Datenmember zugeordnet ist.

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

Parameter

dataSource
Object

Die einer bestimmten BindingManagerBase zugeordnete Datenquelle.

dataMember
String

Ein Navigationspfad mit den Informationen, die in eine bestimmte BindingManagerBase aufgelöst werden.

Eigenschaftswert

Die BindingManagerBase für die angegebene Datenquelle und den angegebenen Datenmember.

Ausnahmen

Der angegebene dataMember ist innerhalb der Datenquelle nicht vorhanden.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie den Item[] für eine bestimmte Bindung abrufen BindingManagerBase . Außerdem wird gezeigt, wie das Ereignis für den BindingCompleteBindingManagerBase behandelt wird, um sicherzustellen, dass mehrere Steuerelemente, die an dieselbe Datenquelle gebunden sind, synchronisiert bleiben, wenn einer der Steuerelementwerte geändert wird. Fügen Sie zum Ausführen dieses Beispiels den Code in eine Windows Form-Instanz ein, und rufen Sie die InitializeControlsAndData -Methode aus dem Konstruktor oder Load der Ereignisbehandlungsmethode des Formulars auf.

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

Hinweise

Verwenden Sie diese Überladung, wenn eine BindingManagerBase Gruppe von Binding Objekten verwaltet wird, für die die Datenquelle mehrere Objekte enthält. Beispielsweise kann ein DataSet mehrere DataTable Objekte enthalten, die durch Objekte verknüpft sind DataRelation . In einem solchen Fall ist der Navigationspfad erforderlich, damit die BindingContext richtige BindingManagerBasezurückgegeben werden kann.

Hinweis

Die Item[] -Eigenschaft gibt immer einen BindingManagerBasezurück, wenn der dataMember Parameter gültig ist. Es wird nie zurückgegeben null.

Eine Liste möglicher Datenquellen und Informationen zum Erstellen von Bindungen zwischen Steuerelementen und Datenquellen finden Sie in der Binding -Klasse.

Wenn die gewünschte BindingManagerBase Liste verwaltet, muss auch der Navigationspfad mit einer Liste enden. Der folgende C#-Code bindet beispielsweise ein TextBox Steuerelement an das Bestelldatum in einer Tabelle mit Aufträgen. Der Navigationspfad umfasst die TableName, und RelationNamedie ColumnName. Der BindingManagerBase muss jedoch nur mit dem TableName und RelationName abgerufen werden (das in eine Liste aufgelöst wird).

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

Wenn Sie einen BindingManagerBasezurückgeben, sollten Sie dieselbe Datenquelle wie die Binding verwenden und nur den Navigationspfad ändern.

Verwenden Sie die Contains -Methode, um zu ermitteln, ob der gewünschte BindingManagerBase bereits vorhanden ist.

Weitere Informationen

Gilt für:

Item[Object]

Ruft die BindingManagerBase ab, die der angegebenen Datenquelle zugeordnet ist.

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

Parameter

dataSource
Object

Die einer bestimmten BindingManagerBase zugeordnete Datenquelle.

Eigenschaftswert

Eine BindingManagerBase für die angegebene Datenquelle.

Beispiele

Im folgenden Codebeispiel werden drei BindingManagerBase Objekte zurückgegeben: eines für ein DataView- und eines für DataSourceBindingTextBox ein ArrayList-Steuerelement.

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

Hinweise

Verwenden Sie diese Überladung, wenn der BindingManagerBase gewünschte keinen Navigationspfad erfordert. Wenn beispielsweise eine BindingManagerBase Gruppe von Binding Objekten verwaltet wird, die ein ArrayList oder DataTable als DataSourceverwenden, ist kein Navigationspfad erforderlich.

Hinweis

Die Item[] -Eigenschaft gibt immer einen BindingManagerBasezurück und gibt nie zurück null.

Eine Liste möglicher Datenquellen und Informationen zum Erstellen von Bindungen zwischen Steuerelementen und Datenquellen finden Sie in der Binding -Klasse.

Weitere Informationen

Gilt für: