Freigeben über


Behandeln von DataView-Ereignissen

Mithilfe des Ereignisses ListChanged können DataView Sie ermitteln, ob eine Ansicht aktualisiert wurde. Aktualisierungen, die das Ereignis auslösen, umfassen das Hinzufügen, Löschen oder Ändern einer Zeile in der zugrunde liegenden Tabelle; Hinzufügen oder Löschen einer Spalte zum Schema der zugrunde liegenden Tabelle; und eine Änderung in einer Übergeordneten oder untergeordneten Beziehung. Das ListChanged-Ereignis benachrichtigt Sie auch, wenn sich die angezeigte Liste der angezeigten Zeilen aufgrund der Anwendung einer neuen Sortierreihenfolge oder eines Filters erheblich geändert hat.

Das ListChanged-Ereignis implementiert den ListChangedEventHandler-Delegaten des System.ComponentModel Namespace und übernimmt als Eingabeobjekt ListChangedEventArgs . Mit dem ListChangedType Enumerationswert in der ListChangedType-Eigenschaft des ListChangedEventArgs-Objekts können Sie bestimmen, welche Art von Änderung aufgetreten ist. Bei Änderungen, die das Hinzufügen, Löschen oder Verschieben von Zeilen umfassen, kann mithilfe der NewIndex-Eigenschaft des ListChangedEventArgs-Objekts auf den neuen Index der hinzugefügten oder verschobenen Zeile zugegriffen werden. Bei einer verschobenen Zeile kann mithilfe der OldIndex-Eigenschaft des ListChangedEventArgs-Objekts auf den vorherigen Index der verschobenen Zeile zugegriffen werden.

Der DataViewManager macht außerdem ein ListChanged-Ereignis verfügbar, um Sie darüber zu informieren, ob eine Tabelle hinzugefügt oder entfernt wurde oder wenn eine Änderung an der Relations-Auflistung des zugrunde liegenden DataSets vorgenommen wurde.

Das folgende Codebeispiel zeigt, wie ein ListChanged-Ereignishandler hinzugefügt wird.

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

Siehe auch