DataView-gebeurtenissen verwerken
U kunt de ListChanged gebeurtenis van de DataView gebeurtenis gebruiken om te bepalen of een weergave is bijgewerkt. Updates die de gebeurtenis genereren, zijn onder andere het toevoegen, verwijderen of wijzigen van een rij in de onderliggende tabel; een kolom toevoegen aan of verwijderen uit het schema van de onderliggende tabel; en een wijziging in een bovenliggende of onderliggende relatie. Met de gebeurtenis ListChanged wordt u ook op de hoogte gebracht als de lijst met rijen die u bekijkt aanzienlijk is gewijzigd vanwege de toepassing van een nieuwe sorteervolgorde of een filter.
Met de gebeurtenis ListChanged wordt de delegate ListChangedEventHandler van de System.ComponentModel naamruimte geïmplementeerd en wordt deze als invoer van een ListChangedEventArgs object gebruikt. U kunt bepalen welk type wijziging heeft plaatsgevonden met behulp van de ListChangedType opsommingswaarde in de eigenschap ListChangedType van het object ListChangedEventArgs . Voor wijzigingen die betrekking hebben op het toevoegen, verwijderen of verplaatsen van rijen, kan de nieuwe index van de toegevoegde of verplaatste rij en de vorige index van de verwijderde rij worden geopend met behulp van de eigenschap NewIndex van het object ListChangedEventArgs . In het geval van een verplaatste rij kan de vorige index van de verplaatste rij worden geopend met behulp van de eigenschap OldIndex van het object ListChangedEventArgs .
In DataViewManager wordt ook een ListChanged-gebeurtenis weergegeven om u te informeren of er een tabel is toegevoegd of verwijderd, of als er een wijziging is aangebracht in de verzameling Relaties van de onderliggende DataSet.
In het volgende codevoorbeeld ziet u hoe u een ListChanged-gebeurtenis-handler toevoegt .
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);
}