可以使用 DataView 的 ListChanged 事件来确定视图是否已经由于以下原因而被更新:添加、删除或修改基础表中的行;因添加或删除列而修改了基础表的架构;或者父关系或子关系发生更改。ListChanged 事件还将通知您所查看的行列表是否已经由于应用新的排序顺序或筛选器而发生重大更改。
ListChanged 事件实现 System.ComponentModel 命名空间的 ListChangedEventHandler
委托,并将 ListChangedEventArgs 对象用作输入。可以使用 ListChangedEventArgs
对象的 ListChangedType 属性中的
DataViewManager 还会公开一个 ListChanged 事件来通知您是否已添加或移除表,或者是否已对基础 DataSet 的 Relations 集合作出更改。
以下代码示例显示如何添加 ListChanged 事件处理程序。
[Visual Basic]
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
[C#]
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);
}