BindingContext.Item[] Właściwość

Definicja

Pobiera element BindingManagerBase.

Przeciążenia

Item[Object, String]

Pobiera element BindingManagerBase skojarzony z określonym źródłem danych i elementem członkowskim danych.

Item[Object]

Pobiera element BindingManagerBase skojarzony z określonym źródłem danych.

Item[Object, String]

Pobiera element BindingManagerBase skojarzony z określonym źródłem danych i elementem członkowskim danych.

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

Parametry

dataSource
Object

Źródło danych skojarzone z określonym BindingManagerBaseelementem .

dataMember
String

Ścieżka nawigacji zawierająca informacje, które są rozpoznawane jako określona BindingManagerBase.

Wartość właściwości

Element BindingManagerBase dla określonego źródła danych i elementu członkowskiego danych.

Wyjątki

Określony dataMember element nie istnieje w źródle danych.

Przykłady

W poniższym przykładzie kodu pokazano, jak użyć elementu Item[] , aby pobrać BindingManagerBase element dla określonego powiązania. Pokazano również, jak obsługiwać BindingComplete zdarzenie dla BindingManagerBase elementu w celu zapewnienia synchronizacji wielu kontrolek powiązanych z tym samym źródłem danych po zmianie jednej z wartości kontrolki. Aby uruchomić ten przykład, wklej kod do formularza systemu Windows i wywołaj InitializeControlsAndData metodę z konstruktora formularza lub Load metody obsługi zdarzeń.

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

Uwagi

Użyj tego przeciążenia, gdy BindingManagerBase zarządza zestawem Binding obiektów, dla których źródło danych zawiera wiele obiektów. Na przykład obiekt DataSet może zawierać kilka DataTable obiektów połączonych przez DataRelation obiekty. W takim przypadku ścieżka nawigacji jest wymagana, aby umożliwić zwracanie BindingContext poprawnego BindingManagerBaseelementu .

Uwaga

Właściwość Item[] zawsze zwraca BindingManagerBasewartość , gdy dataMember parametr jest prawidłowy. Nigdy nie zwróci nullwartości .

Zobacz klasę Binding , aby uzyskać listę możliwych źródeł danych oraz informacje o tworzeniu powiązań między kontrolkami i źródłami danych.

Jeśli wymagane BindingManagerBase zarządza listą, ścieżka nawigacji musi również kończyć się listą. Na przykład poniższy kod w języku C# wiąże kontrolkę TextBox z datą zamówienia w tabeli zamówień. Ścieżka nawigacji zawiera elementy TableName, RelationNamei ColumnName. Należy jednak pobrać element BindingManagerBase przy użyciu tylko TableName elementów i RelationName (które są rozpoznawane jako lista).

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

Podczas zwracania elementu BindingManagerBasenależy użyć tego samego źródła danych co Binding i zmodyfikować tylko ścieżkę nawigacji.

Contains Użyj metody , aby określić, czy żądany BindingManagerBase element już istnieje.

Zobacz też

Dotyczy

Item[Object]

Pobiera element BindingManagerBase skojarzony z określonym źródłem danych.

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

Parametry

dataSource
Object

Źródło danych skojarzone z określonym BindingManagerBaseelementem .

Wartość właściwości

A BindingManagerBase dla określonego źródła danych.

Przykłady

Poniższy przykład kodu zwraca trzy BindingManagerBase obiekty: jeden dla DataView, jeden dla ArrayList, i jeden dla DataSource obiektu Binding , który należy do kontrolki TextBox .

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

Uwagi

Użyj tego przeciążenia, jeśli BindingManagerBase żądany element nie wymaga ścieżki nawigacji. Jeśli na przykład BindingManagerBase zarządza zestawem Binding obiektów, które używają ArrayList obiektu lub DataTable jako DataSource, nie jest wymagana żadna ścieżka nawigacji.

Uwaga

Właściwość Item[] zawsze zwraca BindingManagerBasewartość , a nigdy nie zwraca wartości null.

Zobacz klasę Binding , aby uzyskać listę możliwych źródeł danych oraz informacje o tworzeniu powiązań między kontrolkami i źródłami danych.

Zobacz też

Dotyczy