次の方法で共有


DataView イベントの処理 (ADO.NET)

DataViewListChanged イベントを使用して、ビューが更新されているかどうかを確認できます。 基になるテーブルの行の追加、削除、または変更や、このスキーマの列の追加または削除、親子のリレーションシップの変更など、これらの更新を行うとこのイベントが発生します。 さらに、現在表示されている行のリストが新しい並べ替え順序またはフィルターの適用により大幅に変更された場合、ListChanged イベントはそのことも通知します。

ListChanged イベントは、System.ComponentModel 名前空間の ListChangedEventHandler デリゲートを実装し、ListChangedEventArgs オブジェクトを入力として受け取ります。 発生した変更の内容を確認するには、ListChangedEventArgs オブジェクトの ListChangedType プロパティの ListChangedType 列挙値を使用します。 行の追加、削除、または移動による変更の場合、追加された行または移動された行の新しいインデックスと削除された行の古いインデックスには、ListChangedEventArgs オブジェクトの NewIndex プロパティを使用してアクセスできます。 移動された行の場合、移動前の古いインデックスにアクセスするには ListChangedEventArgs オブジェクトの OldIndex プロパティを使用します。

DataViewManager は、さらにテーブルが追加または削除された場合に、または基になる DataSetRelations コレクションが変更された場合に、そのことを通知するために ListChanged イベントを公開します。

ListChanged イベント ハンドラーを追加する方法を次のコード サンプルに示します。

AddHandler custView.ListChanged, _
  New System.ComponentModel.ListChangedEventHandler( _
  AddressOf OnListChanged)

Private Shared Sub OnListChanged( _
  sender As Object, args As System.ComponentModel.ListChangedEventArgs)
  Console.WriteLine("ListChanged:")
  Console.WriteLine(vbTab & "    Type = " & _
    System.Enum.GetName(args.ListChangedType.GetType(), _
    args.ListChangedType))
  Console.WriteLine(vbTab & "OldIndex = " & args.OldIndex)
  Console.WriteLine(vbTab & "NewIndex = " & args.NewIndex)
End Sub
custView.ListChanged  += new 
  System.ComponentModel.ListChangedEventHandler(OnListChanged);

protected static void OnListChanged(object sender, 
  System.ComponentModel.ListChangedEventArgs args)
{
  Console.WriteLine("ListChanged:");
  Console.WriteLine("\t    Type = " + args.ListChangedType);
  Console.WriteLine("\tOldIndex = " + args.OldIndex);
  Console.WriteLine("\tNewIndex = " + args.NewIndex);
}

参照

参照

DataView

ListChangedEventHandler

その他の技術情報

DataView (ADO.NET)