다음을 통해 공유


BindingManagerBase 클래스

정의

동일한 데이터 소스 및 데이터 멤버에 바인딩되는 Binding 개체를 모두 관리합니다. 이 클래스는 추상 클래스입니다.

public ref class BindingManagerBase abstract
public abstract class BindingManagerBase
type BindingManagerBase = class
Public MustInherit Class BindingManagerBase
상속
BindingManagerBase
파생

예제

다음 코드 예제에서는 를 사용하여 BindingContext 특정 데이터 원본에 대한 를 반환 BindingManagerBase 합니다. (이 예제에서는 모듈의 선언 섹션에서 선언했다고 myBindingManagerBase 가정합니다.) 그런 다음, 이벤트 대리자를 및 PositionChanged 이벤트에 추가합니다CurrentChanged. 마지막으로 이 예제에는 속성을 증가 또는 감소 Position 시키고 를 목록의 첫 번째 또는 마지막 행으로 설정하는 Position 네 가지 메서드(MoveNextMovePrevious, , MoveFirstMoveLast)가 포함되어 있습니다. 목록의 마지막 행은 속성을 사용하여 결정됩니다 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 Form에서 데이터 바인딩된 컨트롤을 동기화할 수 있습니다. (컨트롤을 데이터 원본에 간단하게 바인딩하는 방법에 대한 자세한 내용은 클래스를 Binding 참조하세요.) 예를 들어 폼에 동일한 데이터 원본과 다른 열에 바인딩된 두 개의 TextBox 컨트롤이 포함되어 있다고 가정합니다. 데이터 원본 DataTable 은 고객 이름을 포함하는 이지만 열에는 이름과 성이 포함될 수 있습니다. 동일한 고객에 대해 올바른 이름과 성을 함께 표시하려면 두 컨트롤을 동기화해야 합니다. 클래스에서 상속되는 는 CurrencyManager데이터 원본의 BindingManagerBase 현재 항목에 대한 포인터를 유지 관리하여 이 동기화를 수행합니다. 컨트롤은 TextBox 현재 항목에 바인딩되어 동일한 행에 대한 정보를 표시합니다. 현재 항목이 변경되면 는 CurrencyManager 모든 바인딩된 컨트롤에 데이터를 새로 고칠 수 있도록 알립니다. 또한 속성을 설정하여 컨트롤이 Position 가리키는 의 DataTable 행을 지정할 수 있습니다. 데이터 원본에 있는 행 수를 확인하려면 속성을 사용합니다 Count .

CurrencyManager 는 데이터 원본이 반드시 현재 항목 포인터를 유지 관리하지 않기 때문에 필요합니다. instance 경우 배열과 ArrayList 개체는 데이터 원본일 수 있지만 현재 항목을 반환하는 속성은 없습니다. 현재 항목을 얻으려면 속성을 사용합니다 Current .

또한 는 PropertyManager 에서 BindingManagerBase상속되며, 데이터 원본에서 현재 개체의 속성이 아닌 개체의 현재 속성을 유지하는 데 사용됩니다. 이러한 이유로 설정 하려고 Position 합니다 또는 Count 속성에 대 한 PropertyManager 영향을 주지 않습니다.

BindingManagerBase만들려면 관리되는 데이터 원본에 따라 또는 PropertyManagerCurrencyManager 반환하는 클래스를 사용합니다BindingContext.

솔루션 프로그래머는 실제 대상 데이터 원본에 대한 데이터 원본 및 데이터 커넥터 역할을 하는 구성 요소에 직접 BindingSource 컨트롤을 바인딩하는 것이 좋습니다. BindingSource 컨트롤과 대상 간의 통화 관리를 포함하여 간단하고 복잡한 데이터 바인딩을 크게 간소화합니다.

구현자 참고

에서 BindingManagerBase상속하는 경우 , , , , CancelCurrentEdit()CurrentCountEndCurrentEdit()RemoveAt(Int32)SuspendBinding()GetItemProperties()OnCurrentChanged(EventArgs)PositionResumeBinding()UpdateIsBinding()추상 멤버AddNew()를 재정의해야 합니다.

생성자

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 속성 값이 변경된 후에 발생합니다.

적용 대상

추가 정보