BindingManagerBase Klass

Definition

Hanterar alla Binding objekt som är bundna till samma datakälla och datamedlem. Den här klassen är abstrakt.

public ref class BindingManagerBase abstract
public abstract class BindingManagerBase
type BindingManagerBase = class
Public MustInherit Class BindingManagerBase
Arv
BindingManagerBase
Härledda

Exempel

I följande kodexempel används BindingContext för att returnera en BindingManagerBase för en specifik datakälla. (Exemplet förutsätter att du har deklarerat myBindingManagerBase i avsnittet Deklarationer i modulen.) Exemplet lägger sedan till händelsedelegater till CurrentChanged händelserna och PositionChanged . Slutligen innehåller exemplet fyra metoder (MoveNext, , MovePreviousMoveFirstoch MoveLast) som ökar eller minskar Position egenskapen och anger Position till den första eller sista raden i listan. Den sista raden i listan bestäms med hjälp Count av egenskapen .

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

Kommentarer

Med BindingManagerBase kan du synkronisera databundna kontroller i ett Windows-formulär som är bundna till samma datakälla. (Mer information om enkel bindning av en kontroll till en datakälla finns i Binding klassen.) Anta till exempel att ett formulär innehåller två TextBox kontroller som är bundna till samma datakälla men till olika kolumner. Datakällan kan vara en DataTable som innehåller kundnamn, medan kolumnerna kan innehålla för- och efternamnen. De två kontrollerna måste synkroniseras för att kunna visa rätt för- och efternamn tillsammans för samma kund. , CurrencyManagersom ärver från BindingManagerBase -klassen, utför den här synkroniseringen genom att behålla en pekare till det aktuella objektet i datakällan. Kontrollerna TextBox är bundna till det aktuella objektet så att de visar informationen för samma rad. När det aktuella objektet ändras meddelar det CurrencyManager alla bundna kontroller så att de kan uppdatera sina data. Dessutom kan du ange egenskapen Position för att ange raden i DataTable som kontrollerna pekar på. Använd egenskapen för att avgöra hur många rader som finns i datakällan Count .

CurrencyManager Är nödvändigt eftersom datakällor inte nödvändigtvis har en pekare för aktuellt objekt. Matriser och ArrayList objekt kan till exempel vara datakällor, men de har ingen egenskap som returnerar det aktuella objektet. Använd egenskapen för Current att hämta det aktuella objektet.

Ärver PropertyManager också från BindingManagerBase, och används för att underhålla den aktuella egenskapen för ett objekt i stället för egenskapen för ett aktuellt objekt i en datakälla. Därför har försök att ange Position egenskapen eller Count för en PropertyManager ingen effekt.

Om du vill skapa en BindingManagerBaseanvänder du BindingContext klassen, som returnerar antingen en CurrencyManager eller en PropertyManager, beroende på vilken datakälla som hanteras.

Lösningar programmerare uppmuntras att binda kontroller direkt till en BindingSource komponent, som fungerar som både en datakälla och dataanslutning till den faktiska måldatakällan. BindingSource förenklar avsevärt både enkel och komplex databindning, inklusive hantering av valuta mellan kontrollen och dess mål.

Anteckningar till implementerare

När du ärver från BindingManagerBasemåste du åsidosätta följande abstrakta medlemmar: AddNew(), Count, CancelCurrentEdit(), Current, , GetItemProperties()EndCurrentEdit(), OnCurrentChanged(EventArgs), Position, RemoveAt(Int32), ResumeBinding(), SuspendBinding()och UpdateIsBinding().

Konstruktorer

Name Description
BindingManagerBase()

Initierar en ny instans av BindingManagerBase klassen.

Fält

Name Description
onCurrentChangedHandler

Anger händelsehanteraren för CurrentChanged händelsen.

onPositionChangedHandler

Anger händelsehanteraren för PositionChanged händelsen.

Egenskaper

Name Description
Bindings

Hämtar samlingen av bindningar som hanteras.

Count

När du åsidosättas i en härledd klass hämtar du antalet rader som hanteras av BindingManagerBase.

Current

När det åsidosättas i en härledd klass hämtar det aktuella objektet.

IsBindingSuspended

Hämtar ett värde som anger om bindningen är pausad.

Position

När du åsidosätts i en härledd klass hämtar eller anger du positionen i den underliggande listan som styr bunden till den här datakällans punkt till.

Metoder

Name Description
AddNew()

När det åsidosättas i en härledd klass lägger du till ett nytt objekt i den underliggande listan.

CancelCurrentEdit()

När den åsidosättas i en härledd klass avbryts den aktuella redigeringen.

EndCurrentEdit()

När den åsidosättas i en härledd klass avslutas den aktuella redigeringen.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetItemProperties()

När du åsidosättas i en härledd klass hämtar du samlingen med egenskapsbeskrivningar för bindningen.

GetItemProperties(ArrayList, ArrayList)

Hämtar samlingen med egenskapsbeskrivningar för bindningen med den angivna ArrayList.

GetItemProperties(Type, Int32, ArrayList, ArrayList)

Hämtar listan över egenskaper för de objekt som hanteras av den här BindingManagerBase.

GetListName(ArrayList)

När det åsidosättas i en härledd klass hämtar du namnet på listan som anger data för bindningen.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
OnBindingComplete(BindingCompleteEventArgs)

Genererar händelsen BindingComplete .

OnCurrentChanged(EventArgs)

Genererar händelsen CurrentChanged .

OnCurrentItemChanged(EventArgs)

Genererar händelsen CurrentItemChanged .

OnDataError(Exception)

Genererar händelsen DataError .

PullData()

Hämtar data från den databundna kontrollen till datakällan och returnerar ingen information.

PushData()

Skickar data från datakällan till den databundna kontrollen och returnerar ingen information.

RemoveAt(Int32)

När den åsidosättas i en härledd klass tar du bort raden vid det angivna indexet från den underliggande listan.

ResumeBinding()

När den åsidosättas i en härledd klass återupptas databindningen.

SuspendBinding()

När den åsidosättas i en härledd klass pausar databindningen.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
UpdateIsBinding()

När den åsidosättas i en härledd klass uppdaterar du bindningen.

Händelser

Name Description
BindingComplete

Inträffar när en databindningsåtgärd har slutförts.

CurrentChanged

Inträffar när det för närvarande bundna objektet ändras.

CurrentItemChanged

Inträffar när tillståndet för det för närvarande bundna objektet ändras.

DataError

Inträffar när en Exception hanteras tyst av BindingManagerBase.

PositionChanged

Inträffar när värdet för Position egenskapen har ändrats.

Gäller för

Se även