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

Definicja

Przeciążenia

Item[Object, String]

Pobiera obiekt BindingManagerBase , który jest skojarzony z określonym źródłem danych i składową danych.Gets a BindingManagerBase that is associated with the specified data source and data member.

Item[Object]

Pobiera BindingManagerBase , który jest skojarzony z określonym źródłem danych.Gets the BindingManagerBase that is associated with the specified data source.

Item[Object, String]

Pobiera obiekt BindingManagerBase , który jest skojarzony z określonym źródłem danych i składową danych.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

Parametry

dataSource
Object

Źródło danych skojarzone z określonym BindingManagerBase .The data source associated with a particular BindingManagerBase.

dataMember
String

Ścieżka nawigacji zawierająca informacje, które są rozpoznawane jako określone BindingManagerBase .A navigation path containing the information that resolves to a specific BindingManagerBase.

Wartość właściwości

BindingManagerBase

BindingManagerBaseDla określonego źródła danych i elementu członkowskiego danych.The BindingManagerBase for the specified data source and data member.

Wyjątki

Określony nie dataMember istnieje w źródle danych.The specified dataMember does not exist within the data source.

Przykłady

Poniższy przykład kodu demonstruje, jak użyć, Item[] Aby pobrać BindingManagerBase dla określonego powiązania.The following code example demonstrates how to use the Item[] to retrieve the BindingManagerBase for a particular binding. Pokazano również, jak obsłużyć BindingComplete zdarzenie dla programu, BindingManagerBase Aby upewnić się, że wiele kontrolek powiązanych z tym samym źródłem danych pozostanie zsynchronizowane po zmianie jednej z wartości kontrolnych.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. Aby uruchomić ten przykład, wklej kod do formularza systemu Windows i Wywołaj InitializeControlsAndData metodę z konstruktora lub Load metody obsługi zdarzeń.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

Uwagi

Użyj tego przeciążenia, gdy BindingManagerBase zarządza zestawem Binding obiektów, dla którego źródło danych zawiera wiele obiektów.Use this overload when the BindingManagerBase manages a set of Binding objects for which the data source contains multiple objects. Na przykład DataSet może zawierać kilka DataTable obiektów połączonych przez DataRelation obiekty.For example, a DataSet can contain several DataTable objects linked by DataRelation objects. W takim przypadku ścieżka nawigacji jest wymagana, aby BindingContext można było zwrócić poprawne BindingManagerBase .In such a case, the navigation path is required to enable the BindingContext to return the correct BindingManagerBase.

Uwaga

Item[]Właściwość zawsze zwróci wartość BindingManagerBase , gdy dataMember parametr jest prawidłowy.The Item[] property will always return a BindingManagerBase, when the dataMember parameter is valid. Nigdy nie zwróci null .It will never return null.

Zapoznaj się z Binding klasą, aby uzyskać listę możliwych źródeł danych i informacje o tworzeniu powiązań między kontrolkami i źródłami danych.See the Binding class for a list of possible data sources and for information about creating bindings between controls and data sources.

Jeśli pożądane jest BindingManagerBase Zarządzanie listą, ścieżka nawigacji musi również kończyć się listą.If the desired BindingManagerBase manages a list, the navigation path must also end with a list. Na przykład poniższy kod w języku C# wiąże TextBox formant z datą zamówienia w tabeli Orders.For example, the following C# code binds a TextBox control to the order date in a table of orders. Ścieżka nawigacji zawiera TableName , RelationName i i ColumnName .The navigation path includes the TableName, the RelationName, and the ColumnName. BindingManagerBaseNależy jednak pobrać tylko przy użyciu TableName i RelationName (który jest rozpoznawany jako lista).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"];  

W przypadku powrotu a należy BindingManagerBase użyć tego samego źródła danych co Binding i zmodyfikować tylko ścieżkę nawigacji.When returning a BindingManagerBase, you should use the same data source as the Binding and modify only the navigation path.

Użyj Contains metody, aby określić, czy pożądany BindingManagerBase już istnieje.Use the Contains method to determine if the desired BindingManagerBase already exists.

Zobacz też

Dotyczy

Item[Object]

Pobiera BindingManagerBase , który jest skojarzony z określonym źródłem danych.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

Parametry

dataSource
Object

Źródło danych skojarzone z określonym BindingManagerBase .The data source associated with a particular BindingManagerBase.

Wartość właściwości

BindingManagerBase

A BindingManagerBase dla określonego źródła danych.A BindingManagerBase for the specified data source.

Przykłady

Poniższy przykład kodu zwraca trzy BindingManagerBase obiekty: jeden dla a DataView , jeden dla ArrayList i jeden dla elementu, DataSource Binding który należy do TextBox kontrolki.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

Uwagi

Użyj tego przeciążenia, jeśli BindingManagerBase chcesz, aby ścieżka nawigacji nie była wymagana.Use this overload if the BindingManagerBase you want does not require a navigation path. Na przykład jeśli BindingManagerBase zarządza zestawem Binding obiektów, które używają ArrayList lub DataTable jako DataSource , nie jest wymagana żadna ścieżka nawigacji.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.

Uwaga

Item[]Właściwość zawsze zwróci wartość BindingManagerBase i nigdy nie zwraca null .The Item[] property will always return a BindingManagerBase, and never return null.

Zapoznaj się z Binding klasą, aby uzyskać listę możliwych źródeł danych i informacje o tworzeniu powiązań między kontrolkami i źródłami danych.See the Binding class for a list of possible data sources and for information about creating bindings between controls and data sources.

Zobacz też

Dotyczy