Partager via


Gestion des événements DataView

Vous pouvez utiliser l’événement ListChanged de la DataView fonction pour déterminer si une vue a été mise à jour. Les mises à jour qui déclenchent l’événement incluent l’ajout, la suppression ou la modification d’une ligne dans la table sous-jacente ; ajout ou suppression d’une colonne au schéma de la table sous-jacente ; et une modification dans une relation parent ou enfant. L’événement ListChanged vous avertit également si la liste des lignes que vous affichez a changé considérablement en raison de l’application d’un nouvel ordre de tri ou d’un filtre.

L’événement ListChanged implémente le délégué ListChangedEventHandler de l’espace de noms System.ComponentModel et prend comme entrée un objet ListChangedEventArgs. Vous pouvez déterminer le type de modification qui s’est produit à l’aide de la ListChangedType valeur d’énumération dans la ListChangedType propriété de l’objet ListChangedEventArgs . Pour les modifications qui impliquent l’ajout, la suppression ou le déplacement de lignes, le nouvel index de la ligne ajoutée ou déplacée et l’index précédent de la ligne supprimée sont accessibles à l’aide de la NewIndex propriété de l’objet ListChangedEventArgs . Dans le cas d’une ligne déplacée, l’index précédent de la ligne déplacée est accessible à l’aide de la OldIndex propriété de l’objet ListChangedEventArgs .

L’événement DataViewManager expose également un ListChanged événement pour vous avertir si une table a été ajoutée ou supprimée, ou si une modification a été apportée à la Relations collection du DataSet sous-jacent.

L’exemple de code suivant montre comment ajouter un gestionnaire d’événements 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);
}

Voir aussi