ConstraintCollection.CollectionChanged Event

Definition

Occurs whenever the ConstraintCollection is changed because of Constraint objects being added or removed.

public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged;

Examples

The following example demonstrates how to use the CollectionChanged event.

private static void ConstraintCollectionChanged()
{
    // Demonstrate ConstraintCollection.CollectionChanged event.
    try
    {
        // Create Customers table.
        DataTable customersTable = new DataTable("Customers");
        customersTable.Columns.Add("id", typeof(int));
        customersTable.Columns.Add("Name", typeof(string));
        customersTable.Constraints.CollectionChanged += 
            new System.ComponentModel.CollectionChangeEventHandler( 
            Collection_Changed);

        // Create Orders table.
        DataTable ordersTable = new DataTable("Orders");
        ordersTable.Columns.Add("CustID", typeof(int));
        ordersTable.Columns.Add("CustName", typeof(string));
        ordersTable.Constraints.CollectionChanged += 
            new System.ComponentModel.CollectionChangeEventHandler(
            Collection_Changed);

        // Create unique constraint.
        UniqueConstraint constraint = new UniqueConstraint(
            customersTable.Columns["id"]);
        customersTable.Constraints.Add(constraint);

        // Create unique constraint and specify as primary key.
        ordersTable.Constraints.Add(
            "pKey", ordersTable.Columns["CustID"], true);

        // Remove constraints.
        customersTable.Constraints.RemoveAt(0);

        // Results in an Exception. You can't remove 
        // a primary key constraint.
        ordersTable.Constraints.RemoveAt(0);  
    }
    catch(Exception ex)
    {
        // Process exception and return.
        Console.WriteLine("Exception of type {0} occurred.", 
            ex.GetType());
    }
}

private static void Collection_Changed(object sender, 
    System.ComponentModel.CollectionChangeEventArgs ex)
{
    Console.WriteLine("List_Changed Event: '{0}'\t element={1}", 
        ex.Action, ex.Element);
}
Private Shared Sub ConstraintCollectionChanged()
	' Demonstrate ConstraintCollection.CollectionChanged event.
	Try
		' Create Customers table.
		Dim customersTable As DataTable = New DataTable("Customers")
		customersTable.Columns.Add("id", Type.GetType("System.Int32"))
		customersTable.Columns.Add("Name", Type.GetType("System.String"))
		AddHandler customersTable.Constraints.CollectionChanged, _ 
			New System.ComponentModel.CollectionChangeEventHandler( _
            AddressOf Collection_Changed)

		' Create Orders table.
		Dim ordersTable As DataTable = New DataTable("Orders")
		ordersTable.Columns.Add("CustID", Type.GetType("System.Int32"))
		ordersTable.Columns.Add("CustName", Type.GetType("System.String"))
		AddHandler ordersTable.Constraints.CollectionChanged, _
			New System.ComponentModel.CollectionChangeEventHandler( _
            AddressOf Collection_Changed)

		' Create unique constraint.
		Dim constraint As UniqueConstraint = New _
            UniqueConstraint(customersTable.Columns("id"))
		customersTable.Constraints.Add(constraint)
		
		' Create unique constraint and specify as primary key.
		ordersTable.Constraints.Add( _
            "pKey", ordersTable.Columns("CustID"), True)

		' Remove constraints.
		customersTable.Constraints.RemoveAt( 0)

		' Results in an Exception. You can't remove 
        ' a primary key constraint.
		ordersTable.Constraints.RemoveAt( 0) 
 
	Catch ex As Exception
		' Process exception and return.
        Console.WriteLine("Exception of type {0} occurred.", _
            ex.GetType().ToString())
	End Try
End Sub

Private Shared Sub Collection_Changed( sender As object, _
    ex As System.ComponentModel.CollectionChangeEventArgs)
	Console.WriteLine("List_Changed Event: '{0}'\t element={1}", _
        ex.Action, ex.Element)
End Sub

Remarks

For more information about handling events, see NIB: Consuming Events.