處理 DataView 的事件

您可以使用 ListChangedDataView 事件,判斷是否已更新檢視。 會引發事件的更新包括:加入、刪除或修改基底資料表中的資料列、在基底資料表的結構描述中加入或刪除資料行,以及在父關聯性或子關聯性中進行變更。 當正在檢視的資料列清單因套用了新的排序順序或篩選而有大幅變更時,ListChanged 事件也會通知您。

ListChanged 事件實作 System.ComponentModel 命名空間委派的 ListChangedEventHandler ,並將其當作 ListChangedEventArgs 物件輸入。 您可以使用 ListChangedEventArgs 物件中 ListChangedType 屬性的 ListChangedType 列舉值來判斷發生的變更型別。 對於與加入、刪除或移動資料列相關的變更,可以使用 ListChangedEventArgs 物件的 NewIndex 屬性,存取已加入或移動的資料列新索引,與已刪除的資料列先前索引。 以已移動資料列為例,可以透過 ListChangedEventArgs 物件的 OldIndex 屬性來存取已移動資料列的先前索引。

DataViewManager 也會公開 ListChanged 事件,告知您資料表是否已經加入或移除,或者是否基礎 DataSetRelations 集合物件已經變更。

下列程式碼範例顯示如何加入 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);  
}  

另請參閱