BindingContext.Item[] Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá .BindingManagerBase
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ě.