BindingContext.Item[Object] Свойство

Определение

Возвращает объект BindingManagerBase.Gets a BindingManagerBase.

Перегрузки

Item[Object, String]

Возвращает объект BindingManagerBase, связанный с указанным источником данных и элементом данных.Gets a BindingManagerBase that is associated with the specified data source and data member.

Item[Object]

Получает объект BindingManagerBase, связанный с указанным источником данных.Gets the BindingManagerBase that is associated with the specified data source.

Item[Object, String]

Возвращает объект BindingManagerBase, связанный с указанным источником данных и элементом данных.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

Параметры

dataSource
Object

Источник данных, связанный с конкретным объектом BindingManagerBase.The data source associated with a particular BindingManagerBase.

dataMember
String

Путь перехода, содержащий данные, разрешенные для конкретного объекта BindingManagerBase.A navigation path containing the information that resolves to a specific BindingManagerBase.

Значение свойства

Объект BindingManagerBase для указанного источника данных и элемента данных.The BindingManagerBase for the specified data source and data member.

Исключения

Указанный dataMember не существует в источнике данных.The specified dataMember does not exist within the data source.

Примеры

В следующем примере кода показано, как использовать Item[Object] для получения BindingManagerBase для определенной привязки.The following code example demonstrates how to use the Item[Object] to retrieve the BindingManagerBase for a particular binding. Также показано, как обрабатывает событие BindingComplete для BindingManagerBase, чтобы несколько элементов управления, привязанных к одному источнику данных, оставались синхронизированными при изменении одного из значений элементов управления.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. Чтобы выполнить этот пример, вставьте код в форму Windows Forms и вызовите метод InitializeControlsAndData из конструктора формы или Load метода обработки событий.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

Комментарии

Используйте эту перегрузку, если BindingManagerBase управляет набором объектов Binding, для которых источник данных содержит несколько объектов.Use this overload when the BindingManagerBase manages a set of Binding objects for which the data source contains multiple objects. Например, DataSet может содержать несколько DataTable объектов, связанных DataRelation объектами.For example, a DataSet can contain several DataTable objects linked by DataRelation objects. В этом случае путь перехода необходим для того, чтобы BindingContext возвращал правильный BindingManagerBase.In such a case, the navigation path is required to enable the BindingContext to return the correct BindingManagerBase.

Примечание

Свойство Item[Object] всегда будет возвращать BindingManagerBase, если параметр dataMember является допустимым.The Item[Object] property will always return a BindingManagerBase, when the dataMember parameter is valid. Он никогда не будет возвращать null.It will never return null.

Список возможных источников данных и сведения о создании привязок между элементами управления и источниками данных см. в разделе класс Binding.See the Binding class for a list of possible data sources and for information about creating bindings between controls and data sources.

Если требуемый BindingManagerBase управляет списком, путь перехода также должен заканчиваться списком.If the desired BindingManagerBase manages a list, the navigation path must also end with a list. Например, следующий C# код привязывает TextBox элемент управления к дате заказа в таблице заказов.For example, the following C# code binds a TextBox control to the order date in a table of orders. Путь перехода включает TableName, RelationNameи ColumnName.The navigation path includes the TableName, the RelationName, and the ColumnName. Однако BindingManagerBase необходимо извлечь только с помощью TableName и RelationName (который разрешается в список).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"];  

При возврате BindingManagerBaseследует использовать тот же источник данных, что и Binding, и изменять только путь перехода.When returning a BindingManagerBase, you should use the same data source as the Binding and modify only the navigation path.

Чтобы определить, существует ли нужный BindingManagerBase, используйте метод Contains.Use the Contains method to determine if the desired BindingManagerBase already exists.

Дополнительно

Item[Object]

Получает объект BindingManagerBase, связанный с указанным источником данных.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

Параметры

dataSource
Object

Источник данных, связанный с конкретным объектом BindingManagerBase.The data source associated with a particular BindingManagerBase.

Значение свойства

Объект BindingManagerBase для указанного источника данных.A BindingManagerBase for the specified data source.

Примеры

В следующем примере кода возвращаются три объекта BindingManagerBase: один для DataView, один для ArrayListи один для DataSource Binding, принадлежащего элементу управления 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

Комментарии

Используйте эту перегрузку, если для BindingManagerBase не требуется путь навигации.Use this overload if the BindingManagerBase you want does not require a navigation path. Например, если BindingManagerBase управляет набором Binding объектов, использующих ArrayList или DataTable в качестве DataSource, путь перехода не требуется.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.

Примечание

Свойство Item[Object] всегда возвращает BindingManagerBaseи никогда не будет возвращать null.The Item[Object] property will always return a BindingManagerBase, and never return null.

Список возможных источников данных и сведения о создании привязок между элементами управления и источниками данных см. в разделе класс Binding.See the Binding class for a list of possible data sources and for information about creating bindings between controls and data sources.

Дополнительно

Применяется к