Trabajar con eventos DataView
Puede utilizar el evento ListChanged de DataView para determinar si se ha actualizado una vista porque se ha agregado, eliminado o modificado una fila en la tabla subyacente, porque al agregar o eliminar una columna se ha modificado el esquema de la tabla subyacente, o debido a un cambio en una relación primaria o secundaria. El evento ListChanged también le notificará si la lista de filas que está viendo ha cambiado considerablemente por la aplicación de un nuevo criterio de ordenación o de un filtro.
El evento ListChanged implementa el delegado ListChangedEventHandler del espacio de nombres System.ComponentModel y toma como entrada un objeto ListChangedEventArgs. Puede determinar el tipo de cambio producido mediante el valor de enumeración ListChangedType de la propiedad ListChangedType del objeto ListChangedEventArgs. Para los cambios que implican agregar, eliminar o mover filas, se puede tener acceso al nuevo índice de la fila agregada o movida y al índice anterior de la fila eliminada si utiliza la propiedad NewIndex del objeto ListChangedEventArgs. En el caso de una fila movida, se puede tener acceso al índice anterior de la fila movida mediante la propiedad OldIndex del objeto ListChangedEventArgs.
DataViewManager también expone un evento ListChanged para notificarle si se ha agregado o quitado una tabla, o si se ha realizado un cambio en la colección Relations del DataSet subyacente.
En el siguiente ejemplo de código se muestra cómo agregar un controlador de eventos 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
[C#]
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);
}
Vea también
Crear y utilizar DataViews | DataView (Clase) | ListChangedEventHandler (Delegado)