BindingManagerBase クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
同じデータ ソースおよび同じデータ メンバーに結合された Binding オブジェクトをすべて管理します。 このクラスは抽象クラスです。
public ref class BindingManagerBase abstract
public abstract class BindingManagerBase
type BindingManagerBase = class
Public MustInherit Class BindingManagerBase
- 継承
-
BindingManagerBase
- 派生
例
次のコード例では、 を BindingContext 使用して、特定のデータ ソースの を BindingManagerBase 返します。 (この例では、モジュールの [宣言] セクションで宣言していることをmyBindingManagerBase
前提としています)。次に、イベント デリゲートを イベントと PositionChanged イベントにCurrentChanged追加します。 最後に、この例には、プロパティをインクリメントまたはデクリメントPositionする 4 つのメソッド (MoveNext
、MoveFirst
MovePrevious
およびMoveLast
) が含まれており、 をPositionリストの最初または最後の行に設定します。 リストの最後の行は、 プロパティを Count 使用して決定されます。
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 フォーム上のデータ バインド コントロールの同期を有効にします。 (コントロールをデータ ソースに簡単にバインドする方法の詳細については、 クラスを Binding 参照してください)。たとえば、フォームに、同じデータ ソースにバインドされているが、異なる列にバインドされている 2 つの TextBox コントロールが含まれているとします。 データ ソースは、顧客名を含む である DataTable 場合があります。一方、列には姓と名が含まれる場合があります。 同じ顧客の正しい姓と名を一緒に表示するには、2 つのコントロールを同期する必要があります。 CurrencyManagerクラスをBindingManagerBase継承する は、データ ソース内の現在の項目へのポインターを維持することで、この同期を実現します。 コントロールは TextBox 現在の項目にバインドされるため、同じ行の情報が表示されます。 現在の項目が変更されると、 CurrencyManager はバインドされているすべてのコントロールに通知し、データを更新できるようにします。 さらに、 プロパティを Position 設定して、コントロールが指す 行 DataTable を指定できます。 データ ソースに存在する行の数を確認するには、 プロパティを Count 使用します。
CurrencyManagerデータ ソースが必ずしも現在の項目ポインターを維持するとは限らないため、 が必要です。 たとえば、配列と ArrayList オブジェクトはデータ ソースにすることができますが、現在の項目を返すプロパティはありません。 現在のアイテムを取得するには、 プロパティを Current 使用します。
PropertyManagerは からBindingManagerBase継承され、データ ソース内の現在のオブジェクトの プロパティではなく、オブジェクトの現在のプロパティを維持するために使用されます。 このため、 または Count プロパティPropertyManagerを に設定Positionしようとしても効果はありません。
をBindingManagerBase作成するには、 クラスをBindingContext使用します。このクラスは、管理されているデータ ソースに応じて または を返CurrencyManagerPropertyManagerします。
ソリューション プログラマは、コントロールをコンポーネントに BindingSource 直接バインドすることをお勧めします。これは、データ ソースとデータ コネクタの両方として実際のターゲット データ ソースに機能します。 BindingSource では、コントロールとそのターゲットの間の通貨の管理など、単純なデータ バインディングと複雑なデータ バインディングの両方が大幅に簡素化されます。
注意 (実装者)
からBindingManagerBase継承する場合は、、、CancelCurrentEdit()OnCurrentChanged(EventArgs)SuspendBinding()ResumeBinding()EndCurrentEdit()CurrentCountGetItemProperties()PositionRemoveAt(Int32)および の抽象メンバーAddNew()をオーバーライドするUpdateIsBinding()必要があります。
コンストラクター
BindingManagerBase() |
BindingManagerBase クラスの新しいインスタンスを初期化します。 |
フィールド
onCurrentChangedHandler |
CurrentChanged イベントのイベント ハンドラーを指定します。 |
onPositionChangedHandler |
PositionChanged イベントのイベント ハンドラーを指定します。 |
プロパティ
Bindings |
管理されているバインディングのコレクションを取得します。 |
Count |
派生クラスでオーバーライドされると、BindingManagerBase によって管理される行の数を取得します。 |
Current |
派生クラスでオーバーライドされると、現在のオブジェクトを取得します。 |
IsBindingSuspended |
バインディングが中断されているかどうかを示す値を取得します。 |
Position |
派生クラスでオーバーライドされると、このデータ ソースにバインドされたコントロールが指す、基になるリストでの位置を取得または設定します。 |
メソッド
AddNew() |
派生クラスでオーバーライドされると、基になるリストに新しい項目を追加します。 |
CancelCurrentEdit() |
派生クラスでオーバーライドされると、現在の編集をキャンセルします。 |
EndCurrentEdit() |
派生クラスでオーバーライドされると、現在の編集を終了します。 |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetItemProperties() |
派生クラスでオーバーライドされると、バインディングのプロパティ記述子のコレクションを取得します。 |
GetItemProperties(ArrayList, ArrayList) |
指定した ArrayList を使用して、バインディングのプロパティ記述子のコレクションを取得します。 |
GetItemProperties(Type, Int32, ArrayList, ArrayList) |
この BindingManagerBase によって管理されている項目のプロパティのリストを取得します。 |
GetListName(ArrayList) |
派生クラスでオーバーライドされると、バインディングのためのデータを提供するリストの名前を取得します。 |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
OnBindingComplete(BindingCompleteEventArgs) |
BindingComplete イベントを発生させます。 |
OnCurrentChanged(EventArgs) |
CurrentChanged イベントを発生させます。 |
OnCurrentItemChanged(EventArgs) |
CurrentItemChanged イベントを発生させます。 |
OnDataError(Exception) |
DataError イベントを発生させます。 |
PullData() |
データ バインド コントロールからデータ ソースにデータをプルします。情報は返しません。 |
PushData() |
データ ソースからデータ バインド コントロールにデータをプッシュします。情報は返しません。 |
RemoveAt(Int32) |
派生クラスでオーバーライドされると、基になるリストから指定されたインデックスに対応する行を削除します。 |
ResumeBinding() |
派生クラスでオーバーライドされると、データ連結を再開します。 |
SuspendBinding() |
派生クラスでオーバーライドされると、データ連結を中断します。 |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
UpdateIsBinding() |
派生クラスでオーバーライドされると、バインディングを更新します。 |
イベント
BindingComplete |
データ バインディング操作の完了時に発生します。 |
CurrentChanged |
現在バインドされている項目が変更されると発生します。 |
CurrentItemChanged |
現在バインドされている項目の状態が変更されたときに発生します。 |
DataError |
Exception が BindingManagerBase によって処理された場合に発生します。 |
PositionChanged |
Position プロパティの値が変更された後に発生します。 |
適用対象
こちらもご覧ください
.NET