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 PositionプロパティをMoveFirstインクリメントまたMoveLastはデクリメントする4つのメソッド (、 MovePrevious、、 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 フォーム上のデータバインドコントロールを同期できます。The BindingManagerBase enables the synchronization of data-bound controls on a Windows Form that are bound to the same data source. (データソースへのコントロールの単純なバインドの詳細についてはBinding 、クラスを参照してください)。たとえば、フォームに、同じデータソースにTextBoxバインドされ、異なる列にバインドされている2つのコントロールが含まれているとします。(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. 2つのコントロールは、同じ顧客に対して正しい姓と名を一緒に表示するために同期する必要があります。The two controls must be synchronized in order to display the correct first and last names together for the same customer. クラスから継承されたはCurrencyManager、データソース内の現在の項目へのポインターを保持することによって、この同期を行います。 BindingManagerBaseThe 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するにCurrencyManagerは、 BindingContext管理されているデータソースに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 CancelCurrentEdit()継承する場合はCurrent AddNew() Count 、、EndCurrentEdit()、、 、、OnCurrentChanged(EventArgs)、、、の各抽象メンバーをオーバーライドする必要があります。 GetItemProperties() 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

ExceptionBindingManagerBase によって処理された場合に発生します。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.

適用対象

こちらもご覧ください