DataTableCollection.CollectionChanged Gebeurtenis
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Treedt op nadat het DataTableCollection is gewijzigd omdat DataTable objecten worden toegevoegd of verwijderd.
public:
event System::ComponentModel::CollectionChangeEventHandler ^ CollectionChanged;
public event System.ComponentModel.CollectionChangeEventHandler CollectionChanged;
member this.CollectionChanged : System.ComponentModel.CollectionChangeEventHandler
Public Custom Event CollectionChanged As CollectionChangeEventHandler
Gebeurtenistype
Voorbeelden
In het volgende voorbeeld ziet u hoe u de CollectionChanged gebeurtenis gebruikt.
public static void TableCollectionCollectionChanged()
{
// create a DataSet with two tables
DataSet dataSet = new DataSet();
dataSet.Tables.CollectionChanged +=
new System.ComponentModel.CollectionChangeEventHandler(
Collection_Changed);
// create Customer table
DataTable custTable = new DataTable("Customers");
custTable.Columns.Add("customerId",
typeof(int)).AutoIncrement = true;
custTable.Columns.Add("name",
typeof(string));
custTable.PrimaryKey = new DataColumn[] { custTable.Columns["customerId"] };
// create Orders table
DataTable orderTable = new DataTable("Orders");
orderTable.Columns.Add("orderId",
typeof(int)).AutoIncrement = true;
orderTable.Columns.Add("customerId", typeof(int));
orderTable.Columns.Add("amount", typeof(double));
orderTable.PrimaryKey = new DataColumn[] { orderTable.Columns["orderId"] };
dataSet.Tables.AddRange(new DataTable[] { custTable, orderTable });
// remove all tables
// check if table can be removed and then
// remove it, cannot use a foreach when
// removing items from a collection
// equivalent to dataSet.Tables.Clear()
while (dataSet.Tables.Count > 0)
{
DataTable table = dataSet.Tables[0];
if (dataSet.Tables.CanRemove(table))
{
dataSet.Tables.RemoveAt(0);
}
}
Console.WriteLine("dataSet has {0} tables",
dataSet.Tables.Count);
}
private static void Collection_Changed(object sender,
System.ComponentModel.CollectionChangeEventArgs e)
{
Console.WriteLine("Collection_Changed Event: '{0}'\table element={1}",
e.Action.ToString(), e.Element.ToString());
}
Public Sub TableCollectionCollectionChanged()
' create a DataSet with two tables
Dim dataSet As New DataSet()
AddHandler dataSet.Tables.CollectionChanging, _
AddressOf Collection_Changed
' create Customer table
Dim custTable As New DataTable("Customers")
custTable.Columns.Add("customerId", _
System.Type.GetType("System.Integer")).AutoIncrement = True
custTable.Columns.Add("name", System.Type.GetType("System.String"))
custTable.PrimaryKey = New DataColumn() {custTable.Columns("customerId")}
' create Orders table
Dim orderTable As New DataTable("Orders")
orderTable.Columns.Add("orderId", _
System.Type.GetType("System.Integer")).AutoIncrement = True
orderTable.Columns.Add("customerId", System.Type.GetType("System.Integer"))
orderTable.Columns.Add("amount", System.Type.GetType("System.Double"))
orderTable.PrimaryKey = New DataColumn() {orderTable.Columns("orderId")}
dataSet.Tables.AddRange(New DataTable() {custTable, orderTable})
' Now remove all tables.
' First check to see if the table can be removed,
' then remove it from the collection.
'
' You cannot use a For Each loop when
' removing items from a collection.
Do While (dataSet.Tables.Count > 0)
Dim table As DataTable = dataSet.Tables(0)
If (dataSet.Tables.CanRemove(table)) Then
dataSet.Tables.RemoveAt(0)
End If
Loop
Console.WriteLine("dataSet has {0} tables", dataSet.Tables.Count)
End Sub
Private Sub Collection_Changed(ByVal sender As Object, _
ByVal e As System.ComponentModel.CollectionChangeEventArgs)
Console.WriteLine("Collection_Changed Event: '{0}'\table element={1}", _
e.Action.ToString(), e.Element.ToString())
End Sub
Opmerkingen
Zie Gebeurtenissen verwerken en genereren voor meer informatie over het afhandelen van gebeurtenissen.