您可以使用 ListChanged 的 DataView 事件來判斷檢視是否已更新。 引發事件的更新包括在基礎表中加入、刪除或修改資料列;在基礎表的結構中加入或刪除欄位;以及父系或子系關聯性的變更。
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);
}
另請參閱
- DataView
- ListChangedEventHandler
- DataViews
- ADO.NET 概觀