Sdílet prostřednictvím


Zpracování událostí DataView

Událost ListChanged můžete použít u DataView k určení, jestli bylo zobrazení aktualizováno. Aktualizace, které vyvolaly událost, zahrnují přidání, odstranění nebo úpravu řádku v podkladové tabulce; přidání nebo odstranění sloupce do schématu podkladové tabulky; a změnu vztahu nadřazeného nebo podřízeného objektu. Událost ListChanged vás také upozorní, pokud se seznam zobrazených řádků výrazně změnil kvůli použití nového pořadí řazení nebo filtru.

Událost ListChanged implementuje delegáta ListChangedEventHandler v oboru názvů System.ComponentModel a jako vstup přijímá objekt ListChangedEventArgs. Pomocí hodnoty výčtu ve ListChangedType vlastnosti objektu ListChangedType můžete určit, k jakému typu změny došloListChangedEventArgs. U změn, které zahrnují přidání, odstranění nebo přesunutí řádků, lze nový index přidaného nebo přesunutého řádku a předchozí index odstraněného řádku získat přístup pomocí NewIndex vlastnosti objektu ListChangedEventArgs . V případě přesunutého řádku lze k předchozímu indexu přesunutého řádku přistupovat pomocí OldIndex vlastnosti objektu ListChangedEventArgs .

Také DataViewManager zveřejňuje ListChanged událost, která vás upozorní, pokud byla tabulka přidána nebo odebrána, nebo pokud byla provedena změna v Relations kolekci podkladové datové sady.

Následující příklad kódu ukazuje, jak přidat obslužnou rutinu ListChanged události.

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);
}

Viz také