28.4 Events Reference


ListChangedEventHandler ListChanged;

Fires when the information in a DataView changes, including when DataRowView objects are added, deleted, modified, or moved. This event provides a ListChangedEventArgs object with information about the type of change, and the old and new index of the item, if appropriate. This event is rarely used in application programming (in which case the DataTable events are much more useful) but is typically reserved for creating custom data bound controls.

Event Argument

ListChangedEventArgs e

Exposes three properties. ListChangedType provides an enumerated value that indicates how the list changed. NewIndex and OldIndex indicate where an item moved, if the event is in response to a single row change. For example, if an item is moved from position 0 to position 1, NewIndex is 1, and OldIndex is 0. If an item is deleted, NewIndex contains the former index of the deleted item, and OldIndex isn't used.

Table 28-2 lists the valid values for the ListChangedType enumeration.

Table 28-2. ListChangedType values




An item was added to the list at position NewIndex.


The item at NewIndex was changed.


The item at NewIndex was deleted.


An item moved in the list from OldIndex to NewIndex.

PropertyDescriptorAdded, PropertyDescriptorChanged, and PropertyDescriptorDeleted

A PropertyDescriptor was added, changed, or deleted, and this changed the schema.


The list has changed substantially. Any listeners should reread the entire DataView.


Here's an example that handles the ListChanged event and displays some information to a debug window:

private void OnListChanged(object sender, ListChangedEventArgs args)
    Debug.WriteLine("\t    Type = " + args.ListChangedType);
    Debug.WriteLine("\tOldIndex = " + args.OldIndex);
    Debug.WriteLine("\tNewIndex = " + args.NewIndex);


If you make a change that affects multiple rows, such as changing the Sort order, the DataView doesn't fire one ListChanged event for each row. Instead, it fires a ListChanged event with a ListChangedType of Reset.

    Part I: ADO.NET Tutorial
    Part II: ADO.NET Core Classes
    Part III: API Quick Reference