DataTableCollection.CollectionChanged イベント
アセンブリ: System.Data (system.data.dll 内)

Dim instance As DataTableCollection Dim handler As CollectionChangeEventHandler AddHandler instance.CollectionChanged, handler
public: event CollectionChangeEventHandler^ CollectionChanged { void add (CollectionChangeEventHandler^ value); void remove (CollectionChangeEventHandler^ value); }


CollectionChanged イベントを使用する方法の例を次に示します。
Public Sub TableCollectionCollectionChanged() ' create a DataSet with two tables Dim dataSet As DataSet = New DataSet() AddHandler dataSet.Tables.CollectionChanging, _ AddressOf Collection_Changed ' create Customer table Dim custTable As DataTable = 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 DataTable = 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
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()); }

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からDataTableCollection.CollectionChanged イベントを検索する場合は、下記のリンクをクリックしてください。

- DataTableCollection.CollectionChanged イベントのページへのリンク