DataView Olaylarını İşleme
bir görünümün ListChanged güncelleştirilip güncelleştirilmediğini belirlemek için öğesinin DataView olayını kullanabilirsiniz. Olayı tetikleyen Güncelleştirmeler, temel tablodaki bir satırı ekleme, silme veya değiştirme, temel alınan tablonun şemasına sütun ekleme veya silme ve üst veya alt ilişkide değişiklik içerir. ListChanged olayı, görüntülemekte olduğunuz satır listesinin yeni bir sıralama düzeni veya filtre uygulanması nedeniyle önemli ölçüde değişip değişmediğini de size bildirir.
ListChanged olayı, ad alanının ListChangedEventHandler temsilcisini System.ComponentModel uygular ve bir ListChangedEventArgs nesne girişi olarak alır. ListChangedEventArgs nesnesinin ListChangedType ListChangedType özelliğindeki numaralandırma değerini kullanarak ne tür bir değişikliğin oluştuğunı belirleyebilirsiniz. Satır ekleme, silme veya taşımayı içeren değişiklikler için, eklenen veya taşınan satırın yeni dizinine ve silinen satırın önceki dizinine ListChangedEventArgs nesnesinin NewIndex özelliği kullanılarak erişilebilir. Taşınan satır söz konusu olduğunda, taşınan satırın önceki dizinine ListChangedEventArgs nesnesinin OldIndex özelliği kullanılarak erişilebilir.
DataViewManager ayrıca bir tablo eklenip eklenmediğini veya kaldırıldığını ya da temel alınan DataSet'in İlişkiler koleksiyonunda bir değişiklik yapılıp yapılmadığını size bildirmek için ListChanged olayını kullanıma sunar.
Aşağıdaki kod örneğinde ListChanged olay işleyicisinin nasıl ekleneceği gösterilmektedir.
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);
}