Gestione di eventi DataViewHandling DataView Events

Per determinare se una visualizzazione è stata aggiornata, è possibile usare l'evento ListChanged del DataView.You can use the ListChanged event of the DataView to determine if a view has been updated. Gli aggiornamenti che generano l'evento includono l'aggiunta, l'eliminazione o la modifica di una riga nella tabella sottostante; l'aggiunta o l'eliminazione di una colonna nello schema della tabella sottostante e una modifica in una relazione padre o figlio.Updates that raise the event include adding, deleting, or modifying a row in the underlying table; adding or deleting a column to the schema of the underlying table; and a change in a parent or child relationship. L'evento ListChanged invia inoltre una notifica all'utente se l'elenco di righe visualizzato è stato modificato in modo significativo a causa dell'applicazione di un nuovo ordinamento o di un filtro.The ListChanged event also notifies you if the list of rows you are viewing has changed significantly due to the application of a new sort order or a filter.

L'evento ListChanged implementa il System.ComponentModel delegato ListChangedEventHandler dello spazio dei nomi e accetta come input ListChangedEventArgs un oggetto.The ListChanged event implements the ListChangedEventHandler delegate of the System.ComponentModel namespace and takes as input a ListChangedEventArgs object. È possibile determinare il tipo di modifica che si è verificata usando il ListChangedType valore di enumerazione nella proprietà ListChangedType dell'oggetto ListChangedEventArgs .You can determine what type of change has occurred using the ListChangedType enumeration value in the ListChangedType property of the ListChangedEventArgs object. Per le modifiche che comportano l'aggiunta, l'eliminazione o lo spostamento di righe, è possibile accedere al nuovo indice della riga aggiunta o spostata e all'indice precedente della riga eliminata utilizzando la proprietà newIndex dell'oggetto ListChangedEventArgs .For changes that involve adding, deleting, or moving rows, the new index of the added or moved row and the previous index of the deleted row can be accessed using the NewIndex property of the ListChangedEventArgs object. Nel caso di una riga spostata, è possibile accedere all'indice precedente della riga spostata utilizzando la proprietà OldIndex dell'oggetto ListChangedEventArgs .In the case of a moved row, the previous index of the moved row can be accessed using the OldIndex property of the ListChangedEventArgs object.

DataViewManager espone inoltre un evento ListChanged per notificare all'utente se una tabella è stata aggiunta o rimossa o se è stata apportata una modifica alla raccolta Relations del set di datisottostante.The DataViewManager also exposes a ListChanged event to notify you if a table has been added or removed, or if a change has been made to the Relations collection of the underlying DataSet.

Nell'esempio di codice riportato di seguito viene illustrato come aggiungere un gestore eventi ListChanged .The following code example shows how to add a ListChanged event handler.

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

Vedere ancheSee also