次の方法で共有


DataColumnCollection.CollectionChanged イベント

列の追加または削除によって列コレクションが変更されたときに発生します。

Public Event CollectionChanged As CollectionChangeEventHandler
[C#]
public event CollectionChangeEventHandler CollectionChanged;
[C++]
public: __event CollectionChangeEventHandler* CollectionChanged;

[JScript] JScript では、このクラスで定義されているイベントを処理できます。ただし、独自に定義することはできません。

イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、CollectionChangeEventArgs 型の引数を受け取りました。次の CollectionChangeEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ 説明
Action コレクションがどのように変更されたかを示すアクションを取得します。
Element 変更されたコレクションのインスタンスを取得します。

解説

列が存在するかどうかを確認するには Contains メソッドを使用し、列を削除できるかどうかを確認するには CanRemove メソッドを使用します。

使用例

[Visual Basic, C#, C++] CollectionChanged イベントのイベント ハンドラを追加する例を次に示します。

 
Private Sub MyAddHandler(myTable As DataTable)
    Dim cols As DataColumnCollection = myTable.Columns
    AddHandler cols.CollectionChanged, AddressOf ColumnsCollection_Changed
End Sub    
   
Private Sub ColumnsCollection_Changed _
(sender As Object, e As System.ComponentModel.CollectionChangeEventArgs)
    Dim cols As DataColumnCollection = CType(sender, DataColumnCollection)
    Console.WriteLine("ColumnsCollectionChanged: " + cols.Count.ToString())
End Sub

[C#] 
private void AddHandler(DataTable myTable){
   DataColumnCollection cols = myTable.Columns;
   cols.CollectionChanged += new System.ComponentModel.CollectionChangeEventHandler(ColumnsCollection_Changed);
}

private void ColumnsCollection_Changed(object sender, System.ComponentModel.CollectionChangeEventArgs e){
   DataColumnCollection cols = (DataColumnCollection) sender;
   Console.WriteLine("ColumnsCollectionChanged: " + cols.Count);
}

[C++] 
private:
 void AddHandler(DataTable* myTable){
    DataColumnCollection* cols = myTable->Columns;
    cols->CollectionChanged += new System::ComponentModel::CollectionChangeEventHandler(this, &Form1::ColumnsCollection_Changed);
 }
 
 void ColumnsCollection_Changed(Object* sender, System::ComponentModel::CollectionChangeEventArgs* /*e*/){
    DataColumnCollection* cols = dynamic_cast<DataColumnCollection*> (sender);
    Console::WriteLine(S"ColumnsCollectionChanged: {0}", __box(cols->Count));
 }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

DataColumnCollection クラス | DataColumnCollection メンバ | System.Data 名前空間