ConstraintCollection.CollectionChanged 事件

定义

每当由于添加或移除 Constraint 对象而更改 ConstraintCollection 时发生。

public:
 event System::ComponentModel::CollectionChangeEventHandler ^ CollectionChanged;
public event System.ComponentModel.CollectionChangeEventHandler? CollectionChanged;
public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged;
member this.CollectionChanged : System.ComponentModel.CollectionChangeEventHandler 
Public Custom Event CollectionChanged As CollectionChangeEventHandler 

事件类型

示例

以下示例演示如何使用 CollectionChanged 事件。

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 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 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 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 {ex.GetType()} occurred.")
    End Try
End Sub

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

注解

有关如何处理事件的详细信息,请参阅 处理和引发事件

适用于