Sdílet prostřednictvím


BindingContext.Item[] Vlastnost

Definice

Přetížení

Item[Object, String]

Získá, BindingManagerBase která je přidružena k zadanému zdroji dat a datovému členu.

Item[Object]

BindingManagerBase Získá, který je přidružen k zadanému zdroji dat.

Item[Object, String]

Získá, BindingManagerBase která je přidružena k zadanému zdroji dat a datovému členu.

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

Zdroj dat přidružený ke konkrétnímu BindingManagerBase.

dataMember
String

Navigační cesta obsahující informace, které se přeloží na konkrétní BindingManagerBase.

Hodnota vlastnosti

Pro BindingManagerBase zadaný zdroj dat a člena dat.

Výjimky

Zadaný dataMember zdroj dat neexistuje.

Příklady

Následující příklad kódu ukazuje, jak použít Item[] k načtení BindingManagerBase pro konkrétní vazbu. Také ukazuje, jak zpracovat BindingComplete událost pro BindingManagerBase , aby se zajistilo, že při změně jedné z hodnot ovládacího prvku zůstane synchronizováno více ovládacích prvků svázaných se stejným zdrojem dat. Chcete-li spustit tento příklad, vložte kód do formuláře Windows a zavolejte metodu InitializeControlsAndData z konstruktoru formuláře nebo Load metody zpracování událostí.

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

Poznámky

Toto přetížení použijte, BindingManagerBase když spravuje sadu Binding objektů, pro které zdroj dat obsahuje více objektů. Například DataSet objekt může obsahovat několik DataTable objektů propojených DataRelation objekty. V takovém případě je navigační cesta nutná k tomu, aby funkce vrátila BindingContext správnou BindingManagerBasehodnotu .

Poznámka

Vlastnost Item[] vždy vrátí BindingManagerBasehodnotu , pokud dataMember je parametr platný. Nikdy nevrátí null.

Seznam možných zdrojů dat a informace o vytváření vazeb mezi ovládacími prvky a zdroji dat najdete ve Binding třídě.

Pokud požadovaný BindingManagerBase seznam spravuje, musí navigační cesta také končit seznamem. Například následující kód jazyka C# sváže TextBox ovládací prvek s datem objednávky v tabulce objednávek. Navigační cesta obsahuje TableName, a RelationNameColumnName. Musí BindingManagerBase se ale načíst pouze TableName pomocí a RelationName (který se přeloží na seznam).

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

Při vracení BindingManagerBasebyste měli použít stejný zdroj dat jako Binding a upravit pouze navigační cestu.

Contains Pomocí metody určete, jestli požadovaná BindingManagerBase již existuje.

Viz také

Platí pro

Item[Object]

BindingManagerBase Získá, který je přidružen k zadanému zdroji dat.

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

Zdroj dat přidružený ke konkrétnímu BindingManagerBase.

Hodnota vlastnosti

A BindingManagerBase pro zadaný zdroj dat.

Příklady

Následující příklad kódu vrátí tři BindingManagerBase objekty: jeden pro DataView, jeden pro ArrayList, a druhý pro DataSource objekt Binding , který patří do TextBox ovládacího prvku.

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

Poznámky

Toto přetížení použijte, BindingManagerBase pokud požadovaný objekt nevyžaduje navigační cestu. Pokud BindingManagerBase například spravuje sadu Binding objektů, které používají ArrayList jako DataSourceobjekt nebo DataTable , není nutná žádná navigační cesta.

Poznámka

Vlastnost Item[] vždy vrátí BindingManagerBasehodnotu a nikdy nevrátí null.

Seznam možných zdrojů dat a informace o vytváření vazeb mezi ovládacími prvky a zdroji dat najdete ve Binding třídě.

Viz také

Platí pro