BindingManagerBase Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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. |