BindingManagerBase Třída
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í.
Spravuje všechny Binding objekty, které jsou svázané se stejným zdrojem dat a členem dat. Tato třída je abstraktní.
public ref class BindingManagerBase abstract
public abstract class BindingManagerBase
type BindingManagerBase = class
Public MustInherit Class BindingManagerBase
- Dědičnost
-
BindingManagerBase
- Odvozené
Příklady
Následující příklad kódu používá BindingContext k vrácení konkrétního BindingManagerBase zdroje dat. (Příklad předpokládá, že jste deklarovali myBindingManagerBase v části Deklarace modulu.) Příklad pak přidá delegáty události do CurrentChanged událostí a PositionChanged událostí. Nakonec příklad obsahuje čtyři metody (, , a MoveLast) , které inkrementuje nebo dekrementuje Position vlastnost, a nastaví Position na první nebo poslední řádek v MoveFirstseznamu. MovePreviousMoveNext Poslední řádek v seznamu je určen pomocí Count vlastnosti.
void GetBindingManagerBase()
{
/* CustomersToOrders is the RelationName of a DataRelation.
Therefore, the list maintained by the BindingManagerBase is the
list of orders that belong to a specific customer in the
DataTable named Customers, found in DataSet1. */
myBindingManagerBase = this->BindingContext[DataSet1, "Customers.CustomersToOrders"];
// Adds delegates to the CurrentChanged and PositionChanged events.
myBindingManagerBase->PositionChanged += gcnew EventHandler( this, &Form1::BindingManagerBase_PositionChanged );
myBindingManagerBase->CurrentChanged += gcnew EventHandler( this, &Form1::BindingManagerBase_CurrentChanged );
}
void BindingManagerBase_PositionChanged( Object^ sender, EventArgs^ /*e*/ )
{
// Prints the new Position of the BindingManagerBase.
Console::Write( "Position Changed: " );
Console::WriteLine( (dynamic_cast<BindingManagerBase^>(sender))->Position );
}
void BindingManagerBase_CurrentChanged( Object^ sender, EventArgs^ /*e*/ )
{
// Prints the new value of the current object.
Console::Write( "Current Changed: " );
Console::WriteLine( (dynamic_cast<BindingManagerBase^>(sender))->Current );
}
void MoveNext()
{
// Increments the Position property value by one.
myBindingManagerBase->Position = myBindingManagerBase->Position + 1;
}
void MovePrevious()
{
// Decrements the Position property value by one.
myBindingManagerBase->Position = myBindingManagerBase->Position - 1;
}
void MoveFirst()
{
// Goes to the first row in the list.
myBindingManagerBase->Position = 0;
}
void MoveLast()
{
// Goes to the last row in the list.
myBindingManagerBase->Position = myBindingManagerBase->Count - 1;
}
private void GetBindingManagerBase()
{
/* CustomersToOrders is the RelationName of a DataRelation.
Therefore, the list maintained by the BindingManagerBase is the
list of orders that belong to a specific customer in the
DataTable named Customers, found in DataSet1. */
myBindingManagerBase =
this.BindingContext[DataSet1, "Customers.CustomersToOrders"];
// Adds delegates to the CurrentChanged and PositionChanged events.
myBindingManagerBase.PositionChanged +=
new EventHandler(BindingManagerBase_PositionChanged);
myBindingManagerBase.CurrentChanged +=
new EventHandler(BindingManagerBase_CurrentChanged);
}
private void BindingManagerBase_PositionChanged
(object sender, EventArgs e)
{
// Prints the new Position of the BindingManagerBase.
Console.Write("Position Changed: ");
Console.WriteLine(((BindingManagerBase)sender).Position);
}
private void BindingManagerBase_CurrentChanged
(object sender, EventArgs e)
{
// Prints the new value of the current object.
Console.Write("Current Changed: ");
Console.WriteLine(((BindingManagerBase)sender).Current);
}
private void MoveNext()
{
// Increments the Position property value by one.
myBindingManagerBase.Position += 1;
}
private void MovePrevious()
{
// Decrements the Position property value by one.
myBindingManagerBase.Position -= 1;
}
private void MoveFirst()
{
// Goes to the first row in the list.
myBindingManagerBase.Position = 0;
}
private void MoveLast()
{
// Goes to the last row in the list.
myBindingManagerBase.Position =
myBindingManagerBase.Count - 1;
}
Private Sub GetBindingManagerBase
' CustomersToOrders is the RelationName of a DataRelation.
' Therefore, the list maintained by the BindingManagerBase is the
' list of orders that belong to a specific customer in the
' DataTable named Customers, found in DataSet.
myBindingManagerBase = Me.BindingContext(DataSet1, _
"Customers.CustomersToOrders")
' Adds delegates to the CurrentChanged and PositionChanged events.
AddHandler myBindingManagerBase.PositionChanged, _
AddressOf BindingManagerBase_PositionChanged
AddHandler myBindingManagerBase.CurrentChanged, _
AddressOf BindingManagerBase_CurrentChanged
End Sub
Private Sub BindingManagerBase_PositionChanged _
(sender As Object, e As EventArgs)
' Prints the new Position of the BindingManagerBase.
Console.Write("Position Changed: ")
Console.WriteLine(CType(sender, BindingManagerBase).Position)
End Sub
Private Sub BindingManagerBase_CurrentChanged _
(sender As Object, e As EventArgs)
' Prints the new value of the current object.
Console.Write("Current Changed: ")
Console.WriteLine(CType(sender, BindingManagerBase).Current)
End Sub
Private Sub MoveNext
' Increments the Position property value by one.
myBindingManagerBase.Position += 1
End Sub
Private Sub MovePrevious
' Decrements the Position property value by one.
myBindingManagerBase.Position -= 1
End Sub
Private Sub MoveFirst
' Goes to the first row in the list.
myBindingManagerBase.Position = 0
End Sub
Private Sub MoveLast
' Goes to the last row in the list.
myBindingManagerBase.Position = _
myBindingManagerBase.Count - 1
End Sub
Poznámky
Umožňuje BindingManagerBase synchronizaci ovládacích prvků vázaných na data ve formuláři Windows, které jsou svázané se stejným zdrojem dat. (Další informace o jednoduché vazbě ovládacího prvku ke zdroji dat najdete ve Binding třídě.) Předpokládejme například, že formulář obsahuje dva TextBox ovládací prvky, které jsou svázané se stejným zdrojem dat, ale s různými sloupci. Zdrojem dat může být DataTable jméno zákazníka, zatímco sloupce můžou obsahovat křestní jméno a příjmení. Oba ovládací prvky musí být synchronizované, aby se zobrazilo správné křestní jméno a příjmení pro stejného zákazníka. , CurrencyManagerkterý dědí z BindingManagerBase třídy, provádí tuto synchronizaci udržováním ukazatele na aktuální položku ve zdroji dat. Ovládací TextBox prvky jsou svázané s aktuální položkou, aby zobrazovaly informace pro stejný řádek. Když se aktuální položka změní, CurrencyManager upozorní všechny vázané ovládací prvky, aby mohly aktualizovat svá data. Kromě toho můžete vlastnost nastavit Position tak, aby určil řádek, DataTable na který ovládací prvky odkazují. Chcete-li zjistit, kolik řádků existuje ve zdroji dat, použijte Count vlastnost.
Je CurrencyManager nutné, protože zdroje dat nemusí nutně udržovat ukazatel aktuální položky. Například pole a ArrayList objekty mohou být zdroje dat, ale nemají vlastnost, která vrací aktuální položku. Chcete-li získat aktuální položku, použijte Current vlastnost.
Také PropertyManager dědí z objektu BindingManagerBasea slouží k údržbě aktuální vlastnosti objektu, nikoli vlastnosti aktuálního objektu ve zdroji dat. Z tohoto důvodu se pokus o nastavení Position nebo Count vlastnosti pro objekt PropertyManager nemá žádný vliv.
Chcete-li vytvořit BindingManagerBase, použijte BindingContext třídu, která vrací buď a CurrencyManager nebo a PropertyManager, v závislosti na spravovaném zdroji dat.
Programátoři řešení se doporučuje svázat ovládací prvky přímo s komponentou BindingSource , která funguje jako zdroj dat i datový konektor se skutečným cílovým zdrojem dat. BindingSource výrazně zjednodušuje jednoduchou i složitou datovou vazbu, včetně správy měny mezi ovládacím prvku a jejím cílem.
Poznámky pro implementátory
Při dědění z BindingManagerBase, musíte přepsat následující abstraktní členy: AddNew(), Count, CancelCurrentEdit(), Current, EndCurrentEdit(), GetItemProperties(), RemoveAt(Int32)PositionResumeBinding()OnCurrentChanged(EventArgs)SuspendBinding()a .UpdateIsBinding()
Konstruktory
| Name | Description |
|---|---|
| BindingManagerBase() |
Inicializuje novou instanci BindingManagerBase třídy. |
Pole
| Name | Description |
|---|---|
| onCurrentChangedHandler |
Určuje obslužnou rutinu CurrentChanged události události. |
| onPositionChangedHandler |
Určuje obslužnou rutinu PositionChanged události události. |
Vlastnosti
| Name | Description |
|---|---|
| Bindings |
Získá kolekci vazeb, které se spravují. |
| Count |
Při přepsání v odvozené třídě získá počet řádků spravovaných BindingManagerBase. |
| Current |
Při přepsání v odvozené třídě získá aktuální objekt. |
| IsBindingSuspended |
Získá hodnotu označující, zda je vazba pozastavena. |
| Position |
Při přepsání v odvozené třídě získá nebo nastaví pozici v podkladovém seznamu, který řídí vázané na tento bod zdroje dat. |
Metody
| Name | Description |
|---|---|
| AddNew() |
Při přepsání v odvozené třídě přidá novou položku do podkladového seznamu. |
| CancelCurrentEdit() |
Při přepsání v odvozené třídě zruší aktuální úpravy. |
| EndCurrentEdit() |
Při přepsání v odvozené třídě končí aktuální úpravy. |
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetItemProperties() |
Při přepsání v odvozené třídě získá kolekci popisovačů vlastností pro vazbu. |
| GetItemProperties(ArrayList, ArrayList) |
Získá kolekci popisovačů vlastností pro vazbu pomocí zadaného ArrayList. |
| GetItemProperties(Type, Int32, ArrayList, ArrayList) |
Získá seznam vlastností položek spravovaných tímto BindingManagerBase. |
| GetListName(ArrayList) |
Při přepsání v odvozené třídě získá název seznamu, který poskytuje data pro vazbu. |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| OnBindingComplete(BindingCompleteEventArgs) |
BindingComplete Vyvolá událost. |
| OnCurrentChanged(EventArgs) |
CurrentChanged Vyvolá událost. |
| OnCurrentItemChanged(EventArgs) |
CurrentItemChanged Vyvolá událost. |
| OnDataError(Exception) |
DataError Vyvolá událost. |
| PullData() |
Načítá data z ovládacího prvku vázaného na data do zdroje dat a vrací žádné informace. |
| PushData() |
Nasdílí data ze zdroje dat do ovládacího prvku vázaného na data a vrátí žádné informace. |
| RemoveAt(Int32) |
Při přepsání v odvozené třídě odstraní řádek v zadaném indexu z podkladového seznamu. |
| ResumeBinding() |
Při přepsání v odvozené třídě obnoví datovou vazbu. |
| SuspendBinding() |
Při přepsání v odvozené třídě pozastaví datovou vazbu. |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
| UpdateIsBinding() |
Při přepsání v odvozené třídě aktualizuje vazbu. |
Událost
| Name | Description |
|---|---|
| BindingComplete |
Nastane při dokončení operace datové vazby. |
| CurrentChanged |
Nastane, když se aktuálně vázaná položka změní. |
| CurrentItemChanged |
Nastane, když se změní stav aktuálně vázané položky. |
| DataError |
Nastane, když Exception je bezobslužně zpracována BindingManagerBase. |
| PositionChanged |
Nastane po změně hodnoty Position vlastnosti. |