处理 DataView 事件

可以使用 ListChanged 事件 DataView 来确定视图是否已更新。 引发事件的更新包括添加、删除或修改基础表中的行;向基础表的架构添加或删除列;和父关系或子关系的变化。 ListChanged 事件还会通知你,当你正在查看的行列表因应用新的排序顺序或筛选器而显著更改时。

ListChanged事件实现命名空间的System.ComponentModel委托,并接收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);  
}  

另请参阅