BindingManagerBase Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Minden olyan objektumot Binding kezel, amely ugyanahhoz az adatforráshoz és adatforráshoz van kötve. Ez az osztály absztrakt.
public ref class BindingManagerBase abstract
public abstract class BindingManagerBase
type BindingManagerBase = class
Public MustInherit Class BindingManagerBase
- Öröklődés
-
BindingManagerBase
- Származtatott
Példák
Az alábbi példakód egy BindingContext adott adatforráshoz ad vissza egy BindingManagerBase értéket. (A példa feltételezi, hogy deklarálta myBindingManagerBase a modul Deklarációk szakaszában.) A példa ezután hozzáadja az esemény delegáltjait az és CurrentChanged az PositionChanged eseményekhez. Végül a példa négy olyan metódust (MoveNext, , és MovePreviousMoveFirst) tartalmaz, MoveLastamelyek növelik vagy megcukkantják a Position tulajdonságot, és a Position lista első vagy utolsó sorára állítják be. A lista utolsó sorát a Count tulajdonság határozza meg.
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
Megjegyzések
A BindingManagerBase lehetővé teszi az azonos adatforráshoz kötött Windows űrlap adatkötésű vezérlőinek szinkronizálását. (A vezérlők adatforráshoz való egyszerű kötéséről az osztályban talál Binding további információt.) Tegyük fel például, hogy egy űrlap két TextBox vezérlőt tartalmaz, amelyek ugyanahhoz az adatforráshoz, de különböző oszlopokhoz vannak kötve. Előfordulhat, hogy az adatforrás DataTable ügyfélneveket tartalmaz, míg az oszlopok az utó- és vezetékneveket tartalmazzák. A két vezérlőt szinkronizálni kell, hogy a megfelelő vezeték- és utóneveket együtt jeleníthessék meg ugyanazon ügyfél számára. Az CurrencyManagerosztálytól öröklő , ezt a BindingManagerBase szinkronizálást úgy hajtja végre, hogy megtartja az adatforrás aktuális elemére mutató mutatót. A TextBox vezérlők az aktuális elemhez vannak kötve, így ugyanazon sor adatait jelenítik meg. Amikor az aktuális elem megváltozik, a rendszer értesíti az CurrencyManager összes kötött vezérlőt, hogy frissíthessék az adataikat. Emellett beállíthatja a Position tulajdonságot úgy is, hogy a vezérlők által megadott sor DataTable legyen megadva. Annak megállapításához, hogy hány sor található az adatforrásban, használja a tulajdonságot Count .
Erre CurrencyManager azért van szükség, mert az adatforrások nem feltétlenül tartanak fenn aktuális elemmutatót. A tömbök és ArrayList objektumok lehetnek például adatforrások, de nem rendelkeznek olyan tulajdonságmal, amely az aktuális elemet adja vissza. Az aktuális elem lekéréséhez használja a tulajdonságot Current .
Az PropertyManager is öröklődik az BindingManagerBaseobjektumtól, és egy objektum aktuális tulajdonságának fenntartására szolgál, nem pedig egy adatforrás aktuális objektumának tulajdonságára. Ezért az adott tulajdonság vagy Position tulajdonság Count beállításának PropertyManager nincs hatása.
Hozzon létre egy BindingManagerBaseosztályt, amely a BindingContext felügyelt adatforrástól függően egy CurrencyManager vagy egy PropertyManagerértéket ad vissza.
A megoldások programozóinak javasoljuk, hogy közvetlenül egy BindingSource összetevőhöz kösse a vezérlőket, amely adatforrásként és adatösszekötőként is működik a tényleges céladatforráshoz. BindingSource jelentősen leegyszerűsíti az egyszerű és az összetett adatkötést, beleértve a pénznem kezelését a vezérlő és a cél között.
Megjegyzések az implementálókhoz
Ha örököl, BindingManagerBasefelül kell bírálnia a következő absztrakt tagokat: AddNew(), Count, , CancelCurrentEdit()Current, EndCurrentEdit(), GetItemProperties(), OnCurrentChanged(EventArgs)PositionRemoveAt(Int32)ResumeBinding(), , SuspendBinding(), és .UpdateIsBinding()
Konstruktorok
| Name | Description |
|---|---|
| BindingManagerBase() |
Inicializálja a BindingManagerBase osztály új példányát. |
Mezők
| Name | Description |
|---|---|
| onCurrentChangedHandler |
Az esemény eseménykezelőjének CurrentChanged megadása. |
| onPositionChangedHandler |
Az esemény eseménykezelőjének PositionChanged megadása. |
Tulajdonságok
| Name | Description |
|---|---|
| Bindings |
Lekéri a felügyelt kötések gyűjteményét. |
| Count |
Ha felül van bírálva egy származtatott osztályban, a rendszer lekéri a BindingManagerBase. |
| Current |
Ha felül van bírálva egy származtatott osztályban, lekéri az aktuális objektumot. |
| IsBindingSuspended |
Beolvas egy értéket, amely jelzi, hogy a kötés fel van-e függesztve. |
| Position |
Ha egy származtatott osztályban felül van bírálva, lekéri vagy beállítja a mögöttes listában azt a pozíciót, amely az adatforrásponthoz kötött vezérlőket szabályozza. |
Metódusok
| Name | Description |
|---|---|
| AddNew() |
Ha felül van bírálva egy származtatott osztályban, új elemet ad hozzá az alapul szolgáló listához. |
| CancelCurrentEdit() |
Ha felül van bírálva egy származtatott osztályban, megszakítja az aktuális szerkesztést. |
| EndCurrentEdit() |
Ha felül van bírálva egy származtatott osztályban, az aktuális szerkesztés befejeződik. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetItemProperties() |
Ha felül van bírálva egy származtatott osztályban, lekéri a kötés tulajdonságleíróinak gyűjteményét. |
| GetItemProperties(ArrayList, ArrayList) |
Lekéri a kötés tulajdonságleíróinak gyűjteményét a megadott ArrayListhasználatával. |
| GetItemProperties(Type, Int32, ArrayList, ArrayList) |
Lekéri az ez BindingManagerBaseáltal kezelt elemek tulajdonságait tartalmazó listát. |
| GetListName(ArrayList) |
Ha felül van bírálva egy származtatott osztályban, lekéri a kötés adatait tartalmazó lista nevét. |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| OnBindingComplete(BindingCompleteEventArgs) |
Az eseményt emeli BindingComplete ki. |
| OnCurrentChanged(EventArgs) |
Az eseményt emeli CurrentChanged ki. |
| OnCurrentItemChanged(EventArgs) |
Az eseményt emeli CurrentItemChanged ki. |
| OnDataError(Exception) |
Az eseményt emeli DataError ki. |
| PullData() |
Adatokat kér le az adathoz kötött vezérlőből az adatforrásba, és nem ad vissza információt. |
| PushData() |
Adatokat küld le az adatforrásból az adathoz kötött vezérlőbe, és nem ad vissza információt. |
| RemoveAt(Int32) |
Ha felülbírált egy származtatott osztályban, törli a megadott index sorát az alapul szolgáló listából. |
| ResumeBinding() |
Ha egy származtatott osztályban felül van bírálva, folytatja az adatkötést. |
| SuspendBinding() |
Ha egy származtatott osztályban felül van bírálva, felfüggeszti az adatkötést. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |
| UpdateIsBinding() |
Ha felül van bírálva egy származtatott osztályban, frissíti a kötést. |
esemény
| Name | Description |
|---|---|
| BindingComplete |
Adatkötési művelet befejezésekor következik be. |
| CurrentChanged |
Ez akkor fordul elő, ha a jelenleg kötött elem megváltozik. |
| CurrentItemChanged |
Az aktuálisan kötött elem állapota megváltozik. |
| DataError |
Akkor fordul elő, ha a ExceptionBindingManagerBase. |
| PositionChanged |
A tulajdonság értékének Position módosítása után következik be. |