Udostępnij za pośrednictwem


Obsługa zdarzeń elementu DataView

Możesz użyć ListChanged zdarzenia , DataView aby określić, czy widok został zaktualizowany. Aktualizacje, które zgłaszają zdarzenie, obejmują dodawanie, usuwanie lub modyfikowanie wiersza w tabeli bazowej, dodawanie lub usuwanie kolumny do schematu tabeli bazowej oraz zmiana relacji nadrzędnej lub podrzędnej. Zdarzenie ListChanged powiadamia również o tym, czy wyświetlana lista wierszy uległa znacznej zmianie ze względu na zastosowanie nowej kolejności sortowania lub filtru.

Zdarzenie ListChanged implementuje delegata System.ComponentModel ListChangedEventHandler przestrzeni nazw i przyjmuje jako dane wejściowe ListChangedEventArgs obiektu. Można określić, jaki typ zmiany wystąpił, używając ListChangedType wartości wyliczenia we właściwości ListChangedType obiektu ListChangedEventArgs. W przypadku zmian, które obejmują dodawanie, usuwanie lub przenoszenie wierszy, można uzyskać dostęp do nowego indeksu dodanego lub przeniesionego wiersza i poprzedniego indeksu usuniętego wiersza przy użyciu właściwości NewIndex obiektu ListChangedEventArgs. W przypadku przeniesionego wiersza można uzyskać dostęp do poprzedniego indeksu przeniesionego wiersza przy użyciu właściwości OldIndex obiektu ListChangedEventArgs.

Narzędzie DataViewManager uwidacznia również zdarzenie ListChanged , aby powiadomić o tym, czy tabela została dodana lub usunięta, lub czy wprowadzono zmianę w kolekcji Relacje bazowego zestawu danych.

Poniższy przykład kodu pokazuje, jak dodać program obsługi zdarzeń 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);  
}  

Zobacz też