Share via


ConstraintCollection.CollectionChanged 事件

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

**命名空间:**System.Data
**程序集:**System.Data(在 system.data.dll 中)

语法

声明
Public Event CollectionChanged As CollectionChangeEventHandler
用法
Dim instance As ConstraintCollection
Dim handler As CollectionChangeEventHandler

AddHandler instance.CollectionChanged, handler
public event CollectionChangeEventHandler CollectionChanged
public:
event CollectionChangeEventHandler^ CollectionChanged {
    void add (CollectionChangeEventHandler^ value);
    void remove (CollectionChangeEventHandler^ value);
}
/** @event */
public void add_CollectionChanged (CollectionChangeEventHandler value)

/** @event */
public void remove_CollectionChanged (CollectionChangeEventHandler value)
JScript 支持使用事件,但不支持进行新的声明。

备注

有关处理事件的更多信息,请参见 使用事件

示例

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

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
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);
}

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

ConstraintCollection 类
ConstraintCollection 成员
System.Data 命名空间