Compartilhar via


Manipulando os eventos do DataView

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

O ListChanged evento implementa o ListChangedEventHandler delegado do System.ComponentModel namespace e usa como entrada um ListChangedEventArgs objeto. Você pode determinar que tipo de alteração ocorreu usando o ListChangedType valor de enumeração na ListChangedType propriedade do ListChangedEventArgs objeto. 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 NewIndex propriedade do ListChangedEventArgs objeto. No caso de uma linha movida, o índice anterior da linha movida pode ser acessado usando a OldIndex propriedade do ListChangedEventArgs objeto.

O DataViewManager também expõe um ListChanged evento para notificar se uma tabela foi adicionada ou removida ou se uma alteração foi feita na Relations coleção do Conjunto de Dados subjacente.

O exemplo de código a seguir mostra como adicionar um ListChanged manipulador de eventos.

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);
}

Consulte também