Freigeben über


Arbeiten mit DataView-Ereignissen

Mit dem ListChanged-Ereignis der DataView können Sie feststellen, ob eine Ansicht aufgrund des Hinzufügens, Löschens oder Änderns einer Zeile in der zugrunde liegenden Tabelle, aufgrund des Schemas der zugrunde liegenden Tabelle, das durch Hinzufügen oder Löschen einer Spalte geändert wurde, oder aufgrund einer Änderung einer über- oder untergeordneten Beziehung aktualisiert wurde. Das ListChanged-Ereignis benachrichtigt Sie auch, wenn die Liste der Zeilen, die Sie anzeigen, sich wesentlich aufgrund einer neuen Sortierreihenfolge oder eines Filters geändert hat.

Das ListChanged-Ereignis implementiert den ListChangedEventHandler-Delegaten des System.ComponentModel-Namespaces und akzeptiert ein ListChangedEventArgs-Objekt als Eingabe. Mit dem ListChangedType-Enumerationswert in der ListChangedType-Eigenschaft des ListChangedEventArgs-Objekts können Sie die Art der Änderung feststellen. Wenn bei einer Änderung Zeilen hinzugefügt, gelöscht oder verschoben wurden, können Sie mit der NewIndex-Eigenschaft des ListChangedEventArgs-Objekts auf den neuen Index der hinzugefügten oder verschobenen Zeile und den vorherigen Index der gelöschten Zeile zugreifen. Wenn es sich um eine verschobene Zeile handelt, können Sie mit der OldIndex-Eigenschaft des ListChangedEventArgs-Objekts auf den vorherigen Index der verschobenen Zeile zugreifen.

Der DataViewManager macht auch ein ListChanged-Ereignis verfügbar, um Sie zu benachrichtigen, wenn eine Tabelle hinzugefügt oder entfernt wurde oder wenn eine Änderung an der Relations-Auflistung des zugrunde liegenden DataSets vorgenommen wurde.

Das folgende Beispiel zeigt, wie Sie einen ListChanged-Ereignishandler hinzufügen:

  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
[C#]
  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);
}

Siehe auch

Erstellen einer DataView | DataView-Klasse | ListChangedEventHandler-Delegat