共用方式為


處理 DataView 事件

您可以使用 ListChangedDataView 事件來判斷檢視是否已更新。 引發事件的更新包括在基礎表中加入、刪除或修改資料列;在基礎表的結構中加入或刪除欄位;以及父系或子系關聯性的變更。 ListChanged事件也會通知你,如果你正在瀏覽的列清單因新排序順序或篩選器而有重大變動。

ListChanged 事件實作 System.ComponentModel 命名空間的 ListChangedEventHandler 委派,並以 ListChangedEventArgs 物件作為輸入。 你可以利用ListChangedType物件屬性ListChangedType中的ListChangedEventArgs列舉值來判斷發生了什麼類型的變更。 對於涉及新增、刪除或移動資料列的變更,可以透過物件的NewIndex屬性存取ListChangedEventArgs新增或移動的列的新索引及刪除列的先前索引。 對於移動的列,可以透過物件的OldIndex屬性存取ListChangedEventArgs移動列的前一個索引。

DataViewManager也會曝光一個ListChanged事件,若有資料表被新增或移除,或底層資料集Relations集合有變動,將會通知你。

以下程式碼範例展示了如何新增 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);
}

另請參閱