Обработка событий DataView

Можно использовать событие ListChanged объекта DataView для определения того, обновлено ли представление. Обновления, которые вызывают событие, включают добавление, удаление или изменение строки в базовой таблице; добавление или удаление столбца в схему базовой таблицы; и изменение родительской или дочерней связи. Событие ListChanged также уведомляет вас, если список строк, которые вы просматриваете, значительно изменился из-за приложения нового порядка сортировки или фильтра.

Событие ListChanged реализует делегат ListChangedEventHandler из пространства имен System.ComponentModel и принимает в качестве входных данных объект 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);
}

См. также