Sdílet prostřednictvím


BindingManagerBase Třída

Definice

Spravuje všechny Binding objekty, které jsou vázané na stejný zdroj dat a člen 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í objektu BindingManagerBase pro konkrétní zdroj dat. (Příklad předpokládá, že jste deklarovali myBindingManagerBase v části Deklarace modulu.) Příklad pak přidá delegáty událostí do událostí CurrentChanged a PositionChanged . A konečně, příklad obsahuje čtyři metody (MoveNext, MovePrevious, MoveFirsta MoveLast), které zvýší nebo zmenší Position vlastnost a nastaví Position na první nebo poslední řádek v seznamu. 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 vázané na stejný zdroj dat. (Další informace o jednoduché vazbě ovládacího prvku na zdroj dat najdete ve Binding třídě.) Předpokládejme například, že formulář obsahuje dva TextBox ovládací prvky, které jsou vázané na stejný zdroj dat, ale na různé sloupce. Zdrojem dat může být DataTable název, který obsahuje jména zákazníků, zatímco sloupce můžou obsahovat jméno a příjmení. Tyto dva ovládací prvky musí být synchronizovány, aby bylo možné společně zobrazit správné jméno a příjmení pro stejného zákazníka. Objekt CurrencyManager, který 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 vázané na aktuální položku, takže zobrazují 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 nastavit Position vlastnost tak, aby určila řádek v DataTable řádku, na který ovládací prvky odkazují. Pokud chcete zjistit, kolik řádků existuje ve zdroji Count dat, použijte vlastnost .

Je CurrencyManager to nezbytné, protože zdroje dat nemusí nutně udržovat ukazatel aktuální položky. Například pole a ArrayList objekty můžou být zdroji dat, ale nemají vlastnost, která vrací aktuální položku. Pokud chcete získat aktuální položku, použijte Current vlastnost .

Objekt PropertyManager také dědí z objektu BindingManagerBasea používá se k zachování aktuální vlastnosti objektu, nikoli vlastnosti aktuálního objektu ve zdroji dat. Z tohoto důvodu nemá pokus o nastavení Position vlastnosti nebo Count pro PropertyManager vlastnost žádný účinek.

Pokud chcete vytvořit BindingManagerBase, použijte BindingContext třídu, která vrátí buď , CurrencyManager nebo PropertyManager, v závislosti na spravovaném zdroji dat.

Programátoři řešení se doporučuje svázat ovládací prvky přímo se 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 prvek a jeho cílem.

Poznámky pro implementátory

Když dědíte z BindingManagerBase, musíte přepsat následující abstraktní členy: AddNew(), Count, CancelCurrentEdit(), Current, EndCurrentEdit()GetItemProperties(), OnCurrentChanged(EventArgs), Position, , RemoveAt(Int32), ResumeBinding(), , SuspendBinding()a UpdateIsBinding().

Konstruktory

BindingManagerBase()

Inicializuje novou instanci BindingManagerBase třídy.

Pole

onCurrentChangedHandler

Určuje obslužnou rutinu CurrentChanged události pro událost.

onPositionChangedHandler

Určuje obslužnou rutinu PositionChanged události pro událost.

Vlastnosti

Bindings

Získá kolekci vazeb, které jsou spravovány.

Count

Při přepsání v odvozené třídě získá počet řádků spravovaných objektem 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 zdroj dat bod.

Metody

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ě ukončí aktuální úpravu.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(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é 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á aktuální Type instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(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()

Natáhne data z ovládacího prvku vázaného na data do zdroje dat a nevrátí žádné informace.

PushData()

Nasdílí data ze zdroje dat do ovládacího prvku vázaného na data a nevrá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

BindingComplete

Dochází při dokončení operace datové vazby.

CurrentChanged

Nastane při změně aktuálně vázané položky.

CurrentItemChanged

Nastane, když se změní stav aktuálně vázané položky.

DataError

Nastane, když je objekt Exception bezobslužně zpracován objektem BindingManagerBase.

PositionChanged

Nastane po změně hodnoty Position vlastnosti.

Platí pro

Viz také