Manipulação de eventos de DataView

Você pode usar o evento ListChanged do DataView para determinar se um modo de exibição foi atualizado. Atualizações que geram o evento incluem adicionar, excluir ou modificar uma linha na tabela subjacente, adicionar ou excluir uma coluna ao esquema da tabela subjacente e uma alteração em uma relação pai ou filho. O evento ListChanged também notifica você se a lista de linhas que você está exibindo foi alterada significativamente devido à aplicação de uma nova ordem de classificação ou de um filtro.

O evento ListChanged implementa o delegado ListChangedEventHandler do namespace System.ComponentModel e usa como entrada um objeto ListChangedEventArgs. Você pode determinar qual tipo de alteração ocorreu usando o valor de enumeração ListChangedType na propriedade ListChangedType do objeto ListChangedEventArgs. Para alterações que envolvem adicionar, excluir ou mover linhas, o novo índice da linha adicionada ou movida e o índice anterior da linha excluída podem ser acessados usando a propriedade NewIndex do objeto ListChangedEventArgs. No caso de uma linha movida, o índice anterior da linha movida pode ser acessado usando a propriedade OldIndex do objeto ListChangedEventArgs.

O DataViewManager também expõe um evento ListChanged para notificá-lo se uma tabela foi adicionada ou removida, ou se uma alteração foi feita na coleção Relations do DataSet subjacente.

O exemplo de código a seguir mostra como adicionar um manipulador 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);  
}  

Confira também