DataTableCollection.CollectionChanged イベントとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > DataTableCollection.CollectionChanged イベントの意味・解説 

DataTableCollection.CollectionChanged イベント

DataTable オブジェクト追加または削除したことが原因で DataTableCollection が変更された後に発生します

名前空間: System.Data
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public Event CollectionChanged As
 CollectionChangeEventHandler
Dim instance As DataTableCollection
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 イベント使用する方法の例を次に示します

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());
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DataTableCollection クラス
DataTableCollection メンバ
System.Data 名前空間


このページでは「.NET Framework クラス ライブラリ リファレンス」からDataTableCollection.CollectionChanged イベントを検索した結果を表示しています。
Weblioに収録されているすべての辞書からDataTableCollection.CollectionChanged イベントを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からDataTableCollection.CollectionChanged イベント を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

DataTableCollection.CollectionChanged イベントのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DataTableCollection.CollectionChanged イベントのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS