다음을 통해 공유


DataView 이벤트 처리

ListChanged의 이벤트를 사용하여 DataView 뷰가 업데이트되었는지 확인할 수 있습니다. 이벤트를 발생시키는 업데이트에는 기본 테이블의 행 추가, 삭제 또는 수정이 포함됩니다. 기본 테이블의 스키마에 열을 추가하거나 삭제합니다. 부모 또는 자식 관계의 변경 내용 또한 이벤트는 ListChanged 새 정렬 순서 또는 필터의 적용으로 인해 보고 있는 행 목록이 크게 변경되었는지 여부를 알 수 있습니다.

ListChanged 이벤트는 ListChangedEventHandlerSystem.ComponentModel 대리자를 구현하고 ListChangedEventArgs 개체를 입력으로 사용합니다. 개체 속성의 열거형 값을 ListChangedTypeListChangedType 사용하여 ListChangedEventArgs 어떤 유형의 변경이 발생했는지 확인할 수 있습니다. 행 추가, 삭제 또는 이동과 관련된 변경 내용의 경우 개체의 속성을 사용하여 NewIndex 추가되거나 이동된 행의 새 인덱스 및 삭제된 행의 ListChangedEventArgs 이전 인덱스에 액세스할 수 있습니다. 이동된 행의 경우, OldIndex 속성을 사용하여 ListChangedEventArgs 개체의 이전 인덱스에 액세스할 수 있습니다.

DataViewManager 또한 테이블이 ListChanged 추가 또는 제거되었거나 기본 Relations 컬렉션이 변경되었는지 여부를 알리는 이벤트를 노출합니다.

다음 코드 예제에서는 이벤트 처리기를 추가하는 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);
}

참고하십시오