BindingManagerBase BindingManagerBase BindingManagerBase BindingManagerBase Class

Определение

Управляет всеми объектами Binding, которые привязаны к одному источнику данных и элементу данных.Manages all Binding objects that are bound to the same data source and data member. Это абстрактный класс.This class is abstract.

public ref class BindingManagerBase abstract
public abstract class BindingManagerBase
type BindingManagerBase = class
Public MustInherit Class BindingManagerBase
Наследование
BindingManagerBaseBindingManagerBaseBindingManagerBaseBindingManagerBase
Производный

Примеры

В следующем примере кода используется BindingContext для возврата BindingManagerBase для конкретного источника данных.The following code example uses the BindingContext to return a BindingManagerBase for a specific data source. (В этом примере предполагается, вы объявили myBindingManagerBase в раздел объявлений модуля.) Затем в примере добавляется делегатов событий для CurrentChanged и 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. Наконец, в примере содержится четыре метода (MoveNext, MovePrevious, MoveFirst, и MoveLast), увеличивается или уменьшается, Position и установите Position с первой или последней строкой в списке.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. Последняя строка в списке определяется с помощью Count свойство.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

Комментарии

BindingManagerBase Позволяет синхронизировать элементы управления привязкой к данным в Windows Forms, привязанных к одному источнику данных.The BindingManagerBase enables the synchronization of data-bound controls on a Windows Form that are bound to the same data source. (Дополнительные сведения о простой привязке элемента управления к источнику данных, см. в разделе Binding класса.) Например, предположим, что форма содержит два TextBox элементов управления, привязанных к одному источнику данных, но с различными столбцами.(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. Возможно, источнике DataTable , содержащий имена клиентов, а столбцы могут содержать имена и фамилии.The data source might be a DataTable that contains customer names, while the columns might contain the first and last names. Два элемента управления должны быть синхронизированы для отображения правильные имена и фамилии вместе для того же клиента.The two controls must be synchronized in order to display the correct first and last names together for the same customer. CurrencyManager, Который наследует от BindingManagerBase класса, выполняет процесс синхронизации, поддерживая указатель на текущий элемент в источнике данных.The CurrencyManager, which inherits from the BindingManagerBase class, accomplishes this synchronization by maintaining a pointer to the current item in the data source. TextBox Элементы управления привязаны к текущему элементу, чтобы отображались сведения в той же строке.The TextBox controls are bound to the current item so they display the information for the same row. При изменении текущего элемента, CurrencyManager уведомляет все значение границы элементов управления, таким образом, они могут обновлять свои данные.When the current item changes, the CurrencyManager notifies all the bound controls so that they can refresh their data. Кроме того, можно задать Position свойство, чтобы указать строку в DataTable , указывающие элементы управления.Furthermore, you can set the Position property to specify the row in the DataTable that the controls point to. Чтобы определить, сколько строк содержится в источнике данных, используйте Count свойство.To determine how many rows exist in the data source, use the Count property.

CurrencyManager Необходима, так как источники данных не обязательно сохраняют указатель текущего элемента.The CurrencyManager is necessary because data sources do not necessarily maintain a current-item pointer. Например, массивы и ArrayList объекты могут быть источниками данных, но они не имеют свойство, которое возвращает текущий элемент.For instance, arrays and ArrayList objects can be data sources, but they do not have a property that returns the current item. Чтобы получить текущий элемент, используйте Current свойство.To get the current item, use the Current property.

PropertyManager Также наследует от BindingManagerBase, и он используется для поддержания текущего свойства объекта, а не свойства текущего объекта в источнике данных.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. По этой причине попытка задать Position или Count свойство для PropertyManager не оказывает влияния.For this reason, trying to set the Position or Count property for a PropertyManager has no effect.

Чтобы создать BindingManagerBase, использовать BindingContext класс, который возвращает один CurrencyManager или PropertyManagerв зависимости от управляемого источника данных.To create a BindingManagerBase, use the BindingContext class, which returns either a CurrencyManager or a PropertyManager, depending on the data source being managed.

Программистам решений, рекомендуется привязывать элементы управления непосредственно к BindingSource компонент, который выступает в качестве источника данных и соединитель данных для фактического источника данных.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 значительно упрощает как простые и сложные привязки данных, включая управление денежных единиц между элементом управления и целевым объектом.BindingSource greatly simplifies both simple and complex data binding, including managing currency between the control and its target.

Примечания для тех, кто наследует этот метод

При наследовании от BindingManagerBase, необходимо переопределить следующие члены абстрактный: AddNew(), Count, CancelCurrentEdit(), Current, EndCurrentEdit(), GetItemProperties(), OnCurrentChanged(EventArgs), Position, RemoveAt(Int32) , ResumeBinding(), SuspendBinding(), и 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().

Конструкторы

BindingManagerBase() BindingManagerBase() BindingManagerBase() BindingManagerBase()

Инициализирует новый экземпляр класса BindingManagerBase.Initializes a new instance of the BindingManagerBase class.

Поля

onCurrentChangedHandler onCurrentChangedHandler onCurrentChangedHandler onCurrentChangedHandler

Задает обработчик для события CurrentChanged.Specifies the event handler for the CurrentChanged event.

onPositionChangedHandler onPositionChangedHandler onPositionChangedHandler onPositionChangedHandler

Задает обработчик для события PositionChanged.Specifies the event handler for the PositionChanged event.

Свойства

Bindings Bindings Bindings Bindings

Получает коллекцию управляемых привязок.Gets the collection of bindings being managed.

Count Count Count Count

При переопределении в производном классе получает число строк, управляемых объектом BindingManagerBase.When overridden in a derived class, gets the number of rows managed by the BindingManagerBase.

Current Current Current Current

При переопределении в производном классе получает текущий объект.When overridden in a derived class, gets the current object.

IsBindingSuspended IsBindingSuspended IsBindingSuspended IsBindingSuspended

Получает значение, показывающее, приостановлено ли действие привязки.Gets a value indicating whether binding is suspended.

Position Position Position Position

При переопределении в производном классе получает или задает позицию в базовом списке, на которую указывают элементы управления, привязанные к этому источнику данных.When overridden in a derived class, gets or sets the position in the underlying list that controls bound to this data source point to.

Методы

AddNew() AddNew() AddNew() AddNew()

При переопределении в производном классе добавляет новый элемент в базовый список.When overridden in a derived class, adds a new item to the underlying list.

CancelCurrentEdit() CancelCurrentEdit() CancelCurrentEdit() CancelCurrentEdit()

При переопределении в производном классе отменяет текущее изменение.When overridden in a derived class, cancels the current edit.

EndCurrentEdit() EndCurrentEdit() EndCurrentEdit() EndCurrentEdit()

При переопределении в производном классе завершает текущее изменение.When overridden in a derived class, ends the current edit.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию.Serves as the default hash function.

(Inherited from Object)
GetItemProperties() GetItemProperties() GetItemProperties() GetItemProperties()

При переопределении в производном классе получает коллекцию дескрипторов свойств для привязки.When overridden in a derived class, gets the collection of property descriptors for the binding.

GetItemProperties(ArrayList, ArrayList) GetItemProperties(ArrayList, ArrayList) GetItemProperties(ArrayList, ArrayList) GetItemProperties(ArrayList, ArrayList)

Получает коллекцию дескрипторов свойств для привязки с помощью указанного списка ArrayList.Gets the collection of property descriptors for the binding using the specified ArrayList.

GetItemProperties(Type, Int32, ArrayList, ArrayList) GetItemProperties(Type, Int32, ArrayList, ArrayList) GetItemProperties(Type, Int32, ArrayList, ArrayList) GetItemProperties(Type, Int32, ArrayList, ArrayList)

Получает список свойств элементов, управляемых этим объектом BindingManagerBase.Gets the list of properties of the items managed by this BindingManagerBase.

GetListName(ArrayList) GetListName(ArrayList) GetListName(ArrayList) GetListName(ArrayList)

При переопределении в производном классе получает имя списка, предоставляющего данные для привязки.When overridden in a derived class, gets the name of the list supplying the data for the binding.

GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
OnBindingComplete(BindingCompleteEventArgs) OnBindingComplete(BindingCompleteEventArgs) OnBindingComplete(BindingCompleteEventArgs) OnBindingComplete(BindingCompleteEventArgs)

Вызывает событие BindingComplete.Raises the BindingComplete event.

OnCurrentChanged(EventArgs) OnCurrentChanged(EventArgs) OnCurrentChanged(EventArgs) OnCurrentChanged(EventArgs)

Создает событие CurrentChanged.Raises the CurrentChanged event.

OnCurrentItemChanged(EventArgs) OnCurrentItemChanged(EventArgs) OnCurrentItemChanged(EventArgs) OnCurrentItemChanged(EventArgs)

Создает событие CurrentItemChanged.Raises the CurrentItemChanged event.

OnDataError(Exception) OnDataError(Exception) OnDataError(Exception) OnDataError(Exception)

Создает событие DataError.Raises the DataError event.

PullData() PullData() PullData() PullData()

Передает данные из привязанного к данным элемента управления в источник данных, не возвращая никаких сведений.Pulls data from the data-bound control into the data source, returning no information.

PushData() PushData() PushData() PushData()

Принудительно передает данные из источника данных в привязанный к данным элемент управления, не возвращая никаких сведений.Pushes data from the data source into the data-bound control, returning no information.

RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32)

При переопределении в производном классе удаляет строку с указанным индексом из базового списка.When overridden in a derived class, deletes the row at the specified index from the underlying list.

ResumeBinding() ResumeBinding() ResumeBinding() ResumeBinding()

При переопределении в производном классе возобновляет действие привязки данных.When overridden in a derived class, resumes data binding.

SuspendBinding() SuspendBinding() SuspendBinding() SuspendBinding()

При переопределении в производном классе приостанавливает действие привязки данных.When overridden in a derived class, suspends data binding.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

(Inherited from Object)
UpdateIsBinding() UpdateIsBinding() UpdateIsBinding() UpdateIsBinding()

При переопределении в производном классе обновляет привязку.When overridden in a derived class, updates the binding.

События

BindingComplete BindingComplete BindingComplete BindingComplete

Происходит во время завершения операции по привязке данных.Occurs at the completion of a data-binding operation.

CurrentChanged CurrentChanged CurrentChanged CurrentChanged

Происходит при изменении элемента, к которому имеется привязка.Occurs when the currently bound item changes.

CurrentItemChanged CurrentItemChanged CurrentItemChanged CurrentItemChanged

Происходит при изменении состояния элемента, к которому имеется привязка.Occurs when the state of the currently bound item changes.

DataError DataError DataError DataError

Происходит, когда исключение Exception автоматически обрабатывается объектом BindingManagerBase.Occurs when an Exception is silently handled by the BindingManagerBase.

PositionChanged PositionChanged PositionChanged PositionChanged

Происходит после изменения значения свойства Position.Occurs after the value of the Position property has changed.

Применяется к

Дополнительно