Compartir a través de


Tratamiento de eventos DataView (ADO.NET)

Actualización: November 2007

Puede utilizar el evento ListChanged de la DataView para determinar si se ha actualizado una vista. Entre las actualizaciones que provocan el evento se incluyen la agregación de una fila a la tabla subyacente, así como su eliminación o modificación; la agregación de una columna al esquema de la tabla subyacente o su eliminación y la modificación de una relación primaria o secundaria. El evento ListChanged también le notifica 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 en 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 mediante 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
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

Referencia

DataView

ListChangedEventHandler

Otros recursos

DataViews (ADO.NET)