Share via


Menangani Peristiwa DataView

Anda dapat menggunakan peristiwa ListChanged dari DataView untuk menentukan apakah tampilan telah diperbarui. Pembaruan yang meningkatkan peristiwa termasuk menambahkan, menghapus, atau memodifikasi baris dalam tabel yang mendasarinya; menambahkan atau menghapus kolom ke skema tabel yang mendasarinya; dan perubahan dalam hubungan orang tua atau anak. Peristiwa ListChanged juga memberi tahu Anda jika daftar baris yang Anda lihat telah berubah secara signifikan karena penerapan urutan sortir baru atau filter.

Peristiwa ListChanged mengimplementasikan delegasi ListChangedEventHandler dari namespace System.ComponentModel dan mengambil sebagai input objek ListChangedEventArgs. Anda dapat menentukan jenis perubahan apa yang telah terjadi menggunakan nilai enumerasi ListChangedType di properti ListChangedType dari objek ListChangedEventArgs. Untuk perubahan yang melibatkan penambahan, penghapusan, atau pemindahan baris, indeks baru dari baris yang ditambahkan atau dipindahkan dan indeks sebelumnya dari baris yang dihapus dapat diakses menggunakan properti NewIndex dari objek ListChangedEventArgs. Dalam kasus baris yang dipindahkan, indeks sebelumnya dari baris yang dipindahkan dapat diakses menggunakan properti OldIndex dari objek ListChangedEventArgs.

DataViewManager juga mengekspos peristiwa ListChanged untuk memberi tahu Anda jika tabel telah ditambahkan atau dihapus, atau jika telah dilakukan perubahan pada kumpulan Relasi dari Himpunan Data yang mendasar.

Contoh kode berikut menunjukkan cara menambahkan penanganan aktivitas ListChanged.

AddHandler custView.ListChanged, _  
  New System.ComponentModel.ListChangedEventHandler( _  
  AddressOf OnListChanged)  
  
Private Shared Sub OnListChanged( _  
  sender As Object, args As System.ComponentModel.ListChangedEventArgs)  
  Console.WriteLine("ListChanged:")  
  Console.WriteLine(vbTab & "    Type = " & _  
    System.Enum.GetName(args.ListChangedType.GetType(), _  
    args.ListChangedType))  
  Console.WriteLine(vbTab & "OldIndex = " & args.OldIndex)  
  Console.WriteLine(vbTab & "NewIndex = " & args.NewIndex)  
End Sub  
custView.ListChanged  += new
  System.ComponentModel.ListChangedEventHandler(OnListChanged);  
  
protected static void OnListChanged(object sender,
  System.ComponentModel.ListChangedEventArgs args)  
{  
  Console.WriteLine("ListChanged:");  
  Console.WriteLine("\t    Type = " + args.ListChangedType);  
  Console.WriteLine("\tOldIndex = " + args.OldIndex);  
  Console.WriteLine("\tNewIndex = " + args.NewIndex);  
}  

Lihat juga