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