ConstraintCollection.CollectionChanged 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
每当由于添加或移除 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
注解
有关如何处理事件的详细信息,请参阅 处理和引发事件。