Share via


BindingManagerBase Kelas

Definisi

Mengelola semua Binding objek yang terikat ke sumber data dan anggota data yang sama. Kelas ini abstrak.

public ref class BindingManagerBase abstract
public abstract class BindingManagerBase
type BindingManagerBase = class
Public MustInherit Class BindingManagerBase
Warisan
BindingManagerBase
Turunan

Contoh

Contoh kode berikut menggunakan BindingContext untuk mengembalikan untuk BindingManagerBase sumber data tertentu. (Contoh mengasumsikan Anda telah mendeklarasikan myBindingManagerBase di bagian Deklarasi modul.) Contoh kemudian menambahkan delegasi peristiwa ke CurrentChanged peristiwa dan PositionChanged . Terakhir, contoh berisi empat metode (MoveNext, , MovePrevious, MoveFirstdan MoveLast) yang menaikkan atau mengurangi Position properti, dan mengatur Position ke baris pertama atau terakhir dalam daftar. Baris terakhir dalam daftar ditentukan dengan menggunakan Count properti .

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

Keterangan

BindingManagerBase memungkinkan sinkronisasi kontrol terikat data pada Formulir Windows yang terikat ke sumber data yang sama. (Untuk informasi selengkapnya tentang pengikatan sederhana kontrol ke sumber data, lihat Binding kelas .) Misalnya, misalkan formulir berisi dua TextBox kontrol yang terikat ke sumber data yang sama tetapi ke kolom yang berbeda. Sumber data mungkin berisi DataTable nama pelanggan, sementara kolom mungkin berisi nama depan dan belakang. Kedua kontrol harus disinkronkan untuk menampilkan nama depan dan belakang yang benar bersama-sama untuk pelanggan yang sama. CurrencyManager, yang mewarisi dari BindingManagerBase kelas , menyelesaikan sinkronisasi ini dengan mempertahankan penunjuk ke item saat ini di sumber data. Kontrol TextBox terikat ke item saat ini sehingga mereka menampilkan informasi untuk baris yang sama. Ketika item saat ini berubah, CurrencyManager akan memberi tahu semua kontrol terikat sehingga mereka dapat menyegarkan datanya. Selain itu, Anda dapat mengatur Position properti untuk menentukan baris tempat DataTable kontrol menunjuk. Untuk menentukan berapa banyak baris yang ada di sumber data, gunakan Count properti .

CurrencyManager diperlukan karena sumber data tidak selalu mempertahankan penunjuk item saat ini. Misalnya, array dan ArrayList objek dapat menjadi sumber data, tetapi tidak memiliki properti yang mengembalikan item saat ini. Untuk mendapatkan item saat ini, gunakan Current properti .

PropertyManager juga mewarisi dari BindingManagerBase, dan digunakan untuk mempertahankan properti objek saat ini, bukan properti objek saat ini di sumber data. Untuk alasan ini, mencoba mengatur Position properti atau Count untuk tidak PropertyManager berpengaruh.

Untuk membuat BindingManagerBase, gunakan BindingContext kelas , yang mengembalikan atau CurrencyManagerPropertyManager, tergantung pada sumber data yang dikelola.

Pemrogram solusi didorong untuk mengikat kontrol langsung ke BindingSource komponen, yang bertindak sebagai sumber data dan konektor data ke sumber data target aktual. BindingSource sangat menyederhanakan pengikatan data yang sederhana dan kompleks, termasuk mengelola mata uang antara kontrol dan targetnya.

Catatan Bagi Implementer

Ketika Anda mewarisi dari BindingManagerBase, Anda harus mengambil alih anggota abstrak berikut: AddNew(), , , Count, CancelCurrentEdit()EndCurrentEdit()Current, GetItemProperties(), , PositionOnCurrentChanged(EventArgs), RemoveAt(Int32), ResumeBinding(), SuspendBinding(), dan .UpdateIsBinding()

Konstruktor

BindingManagerBase()

Menginisialisasi instans baru kelas BindingManagerBase.

Bidang

onCurrentChangedHandler

Menentukan penanganan aktivitas untuk peristiwa tersebut CurrentChanged .

onPositionChangedHandler

Menentukan penanganan aktivitas untuk peristiwa tersebut PositionChanged .

Properti

Bindings

Mendapatkan koleksi pengikatan yang dikelola.

Count

Ketika ditimpa di kelas turunan, mendapatkan jumlah baris yang dikelola oleh BindingManagerBase.

Current

Ketika ditimpa di kelas turunan, mendapatkan objek saat ini.

IsBindingSuspended

Mendapatkan nilai yang menunjukkan apakah pengikatan ditangguhkan.

Position

Saat ditimpa di kelas turunan, mendapatkan atau mengatur posisi dalam daftar dasar yang mengontrol terikat ke titik sumber data ini.

Metode

AddNew()

Saat ditimpa di kelas turunan, menambahkan item baru ke daftar yang mendasar.

CancelCurrentEdit()

Saat ditimpa di kelas turunan, membatalkan pengeditan saat ini.

EndCurrentEdit()

Saat ditimpa di kelas turunan, mengakhiri pengeditan saat ini.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetItemProperties()

Ketika ditimpa di kelas turunan, mendapatkan koleksi deskriptor properti untuk pengikatan.

GetItemProperties(ArrayList, ArrayList)

Mendapatkan kumpulan deskriptor properti untuk pengikatan menggunakan yang ditentukan ArrayList.

GetItemProperties(Type, Int32, ArrayList, ArrayList)

Mendapatkan daftar properti item yang dikelola oleh ini BindingManagerBase.

GetListName(ArrayList)

Ketika ditimpa di kelas turunan, mendapatkan nama daftar yang menyediakan data untuk pengikatan.

GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
OnBindingComplete(BindingCompleteEventArgs)

Memunculkan kejadian BindingComplete.

OnCurrentChanged(EventArgs)

Memunculkan kejadian CurrentChanged.

OnCurrentItemChanged(EventArgs)

Memunculkan kejadian CurrentItemChanged.

OnDataError(Exception)

Memunculkan kejadian DataError.

PullData()

Menarik data dari kontrol terikat data ke sumber data, tidak mengembalikan informasi.

PushData()

Mendorong data dari sumber data ke kontrol terikat data, tidak mengembalikan informasi.

RemoveAt(Int32)

Saat ditimpa di kelas turunan, menghapus baris pada indeks yang ditentukan dari daftar yang mendasar.

ResumeBinding()

Saat ditimpa di kelas turunan, melanjutkan pengikatan data.

SuspendBinding()

Saat ditimpa di kelas turunan, menangguhkan pengikatan data.

ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)
UpdateIsBinding()

Saat ditimpa di kelas turunan, perbarui pengikatan.

Acara

BindingComplete

Terjadi pada penyelesaian operasi pengikatan data.

CurrentChanged

Terjadi ketika item yang saat ini terikat berubah.

CurrentItemChanged

Terjadi ketika status item yang saat ini terikat berubah.

DataError

Terjadi ketika diam-diam ExceptionBindingManagerBaseditangani oleh .

PositionChanged

Terjadi setelah nilai Position properti berubah.

Berlaku untuk

Lihat juga