BindingManagerBase Klasa

Definicja

Zarządza wszystkimi Binding obiektami, które są powiązane z tym samym źródłem danych i składową danych.Manages all Binding objects that are bound to the same data source and data member. Ta klasa jest abstrakcyjna.This class is abstract.

public ref class BindingManagerBase abstract
public abstract class BindingManagerBase
type BindingManagerBase = class
Public MustInherit Class BindingManagerBase
Dziedziczenie
BindingManagerBase
Pochodne

Przykłady

Poniższy przykład kodu używa BindingContext do zwrócenia BindingManagerBase dla określonego źródła danych.The following code example uses the BindingContext to return a BindingManagerBase for a specific data source. (W przykładzie przyjęto założenie, że zadeklarowano myBindingManagerBase w sekcji deklaracji modułu). Przykład następnie dodaje delegatów zdarzeń do CurrentChanged zdarzeń i PositionChanged .(The example assumes you have declared myBindingManagerBase in the Declarations section of the module.) The example then adds event delegates to the CurrentChanged and PositionChanged events. Na koniec przykład zawiera cztery metody (,, MoveNext MovePrevious MoveFirst i MoveLast ), które zwiększają lub zmniejszają Position Właściwość, i ustawiają Position na pierwszy lub ostatni wiersz na liście.Lastly, the example contains four methods (MoveNext, MovePrevious, MoveFirst, and MoveLast) that increment or decrement the Position property, and set the Position to the first or last row in the list. Ostatni wiersz na liście jest określany za pomocą Count właściwości.The last row in the list is determined by using the Count property.

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

Uwagi

BindingManagerBaseWłącza synchronizację formantów powiązanych z danymi w formularzu systemu Windows, które są powiązane z tym samym źródłem danych.The BindingManagerBase enables the synchronization of data-bound controls on a Windows Form that are bound to the same data source. (Aby uzyskać więcej informacji na temat prostego powiązania kontrolki ze źródłem danych, zobacz Binding Klasa). Załóżmy na przykład, że formularz zawiera dwie TextBox kontrolki, które są powiązane z tym samym źródłem danych, ale do różnych kolumn.(For more information about simple binding a control to a data source, see the Binding class.) For example, suppose that a form contains two TextBox controls that are bound to the same data source but to different columns. Źródłem danych może być, DataTable który zawiera nazwy klientów, natomiast kolumny mogą zawierać imiona i nazwiska.The data source might be a DataTable that contains customer names, while the columns might contain the first and last names. Dwie kontrolki muszą być zsynchronizowane w celu wyświetlenia poprawnych imion i nazwisk dla tego samego klienta.The two controls must be synchronized in order to display the correct first and last names together for the same customer. CurrencyManager, Która dziedziczy z BindingManagerBase klasy, wykonuje tę synchronizację przez utrzymywanie wskaźnika do bieżącego elementu w źródle danych.The CurrencyManager, which inherits from the BindingManagerBase class, accomplishes this synchronization by maintaining a pointer to the current item in the data source. TextBoxKontrolki są powiązane z bieżącym elementem, aby wyświetlały informacje dla tego samego wiersza.The TextBox controls are bound to the current item so they display the information for the same row. Gdy bieżący element zostanie zmieniony, CurrencyManager powiadamia wszystkie kontrolki powiązane, dzięki czemu mogą odświeżać swoje dane.When the current item changes, the CurrencyManager notifies all the bound controls so that they can refresh their data. Ponadto można ustawić Position Właściwość, aby określić wiersz w DataTable kontrolce, która wskazuje na.Furthermore, you can set the Position property to specify the row in the DataTable that the controls point to. Aby określić, ile wierszy istnieje w źródle danych, użyj Count właściwości.To determine how many rows exist in the data source, use the Count property.

CurrencyManagerJest to konieczne, ponieważ źródła danych niekoniecznie utrzymują wskaźnik bieżącego elementu.The CurrencyManager is necessary because data sources do not necessarily maintain a current-item pointer. Na przykład tablice i ArrayList obiekty mogą być źródłami danych, ale nie mają właściwości, która zwraca bieżący element.For instance, arrays and ArrayList objects can be data sources, but they do not have a property that returns the current item. Aby uzyskać bieżący element, użyj Current właściwości.To get the current item, use the Current property.

PropertyManagerDziedziczy również z BindingManagerBase i służy do zachowywania bieżącej właściwości obiektu, a nie właściwości bieżącego obiektu w źródle danych.The PropertyManager also inherits from the BindingManagerBase, and it is used to maintain the current property of an object, rather than the property of a current object in a data source. Z tego powodu próba ustawienia Position lub Count właściwości dla elementu nie PropertyManager ma żadnego wpływu.For this reason, trying to set the Position or Count property for a PropertyManager has no effect.

Aby utworzyć obiekt BindingManagerBase , należy użyć BindingContext klasy, która zwraca albo CurrencyManager lub, w PropertyManager zależności od zarządzanego źródła danych.To create a BindingManagerBase, use the BindingContext class, which returns either a CurrencyManager or a PropertyManager, depending on the data source being managed.

Programiści rozwiązań są zachęcani do wiązania formantów bezpośrednio ze BindingSource składnikiem, który działa jak źródło danych i łącznik danych do rzeczywistego docelowego źródła danych.Solutions programmers are encouraged to bind controls directly to a BindingSource component, which acts as both a data source and data connector to the actual target data source. BindingSource znacznie upraszcza proste i złożone powiązanie danych, w tym zarządzanie walutą między kontrolką a jej elementem docelowym.BindingSource greatly simplifies both simple and complex data binding, including managing currency between the control and its target.

Uwagi dotyczące implementowania

W przypadku dziedziczenia z BindingManagerBase , należy zastąpić następujące abstrakcyjne elementy członkowskie:,,,,,,,,, AddNew() Count CancelCurrentEdit() Current EndCurrentEdit() GetItemProperties() OnCurrentChanged(EventArgs) Position RemoveAt(Int32) ResumeBinding() SuspendBinding() , i UpdateIsBinding() .When you inherit from BindingManagerBase, you must override the following abstract members: AddNew(), Count, CancelCurrentEdit(), Current, EndCurrentEdit(), GetItemProperties(), OnCurrentChanged(EventArgs), Position, RemoveAt(Int32), ResumeBinding(), SuspendBinding(), and UpdateIsBinding().

Konstruktory

BindingManagerBase()

Inicjuje nowe wystąpienie klasy BindingManagerBase.Initializes a new instance of the BindingManagerBase class.

Pola

onCurrentChangedHandler

Określa program obsługi zdarzeń dla CurrentChanged zdarzenia.Specifies the event handler for the CurrentChanged event.

onPositionChangedHandler

Określa program obsługi zdarzeń dla PositionChanged zdarzenia.Specifies the event handler for the PositionChanged event.

Właściwości

Bindings

Pobiera kolekcję zarządzanych powiązań.Gets the collection of bindings being managed.

Count

Gdy jest zastępowany w klasie pochodnej, pobiera liczbę wierszy zarządzanych przez BindingManagerBase .When overridden in a derived class, gets the number of rows managed by the BindingManagerBase.

Current

Gdy jest zastępowany w klasie pochodnej, pobiera bieżący obiekt.When overridden in a derived class, gets the current object.

IsBindingSuspended

Pobiera wartość wskazującą, czy powiązanie jest zawieszone.Gets a value indicating whether binding is suspended.

Position

Gdy jest zastępowany w klasie pochodnej, Pobiera lub ustawia pozycję na liście podstawowej, która kontroluje powiązane z tym punktem źródła danych.When overridden in a derived class, gets or sets the position in the underlying list that controls bound to this data source point to.

Metody

AddNew()

Gdy jest zastępowany w klasie pochodnej, dodaje nowy element do listy podstawowej.When overridden in a derived class, adds a new item to the underlying list.

CancelCurrentEdit()

Gdy jest zastępowany w klasie pochodnej, anuluje bieżącą edycję.When overridden in a derived class, cancels the current edit.

EndCurrentEdit()

Gdy jest zastępowany w klasie pochodnej, bieżąca Edycja zostanie zakończona.When overridden in a derived class, ends the current edit.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetItemProperties()

Gdy jest zastępowany w klasie pochodnej, pobiera kolekcję deskryptorów właściwości dla powiązania.When overridden in a derived class, gets the collection of property descriptors for the binding.

GetItemProperties(ArrayList, ArrayList)

Pobiera kolekcję deskryptorów właściwości dla powiązania przy użyciu określonego elementu ArrayList .Gets the collection of property descriptors for the binding using the specified ArrayList.

GetItemProperties(Type, Int32, ArrayList, ArrayList)

Pobiera listę właściwości elementów zarządzanych przez ten element BindingManagerBase .Gets the list of properties of the items managed by this BindingManagerBase.

GetListName(ArrayList)

Gdy jest zastępowany w klasie pochodnej, pobiera nazwę listy dostarczającej dane dla powiązania.When overridden in a derived class, gets the name of the list supplying the data for the binding.

GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
OnBindingComplete(BindingCompleteEventArgs)

Podnosi BindingComplete zdarzenie.Raises the BindingComplete event.

OnCurrentChanged(EventArgs)

Podnosi CurrentChanged zdarzenie.Raises the CurrentChanged event.

OnCurrentItemChanged(EventArgs)

Podnosi CurrentItemChanged zdarzenie.Raises the CurrentItemChanged event.

OnDataError(Exception)

Podnosi DataError zdarzenie.Raises the DataError event.

PullData()

Pobiera dane z kontrolki powiązanej z danymi do źródła danych, zwracając brak informacji.Pulls data from the data-bound control into the data source, returning no information.

PushData()

Wypchnij dane ze źródła danych do kontrolki powiązanej z danymi, zwracając brak informacji.Pushes data from the data source into the data-bound control, returning no information.

RemoveAt(Int32)

Gdy jest zastępowany w klasie pochodnej, usuwa wiersz o określonym indeksie z listy podstawowej.When overridden in a derived class, deletes the row at the specified index from the underlying list.

ResumeBinding()

Gdy jest zastępowany w klasie pochodnej, wznawia powiązanie danych.When overridden in a derived class, resumes data binding.

SuspendBinding()

Gdy jest zastępowany w klasie pochodnej, zawiesza powiązanie danych.When overridden in a derived class, suspends data binding.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)
UpdateIsBinding()

Gdy jest zastępowany w klasie pochodnej, aktualizuje powiązanie.When overridden in a derived class, updates the binding.

Zdarzenia

BindingComplete

Występuje po zakończeniu operacji powiązania danych.Occurs at the completion of a data-binding operation.

CurrentChanged

Występuje po zmianie aktualnie powiązanego elementu.Occurs when the currently bound item changes.

CurrentItemChanged

Występuje, gdy zmienia się stan aktualnie powiązanego elementu.Occurs when the state of the currently bound item changes.

DataError

Występuje, gdy element Exception jest obsługiwany dyskretnie przez BindingManagerBase .Occurs when an Exception is silently handled by the BindingManagerBase.

PositionChanged

Występuje po Position zmianie wartości właściwości.Occurs after the value of the Position property has changed.

Dotyczy

Zobacz też