Sdílet prostřednictvím


ExecutedRoutedEventHandler Delegát

Definice

Představuje metodu, která bude zpracovávat ExecutedPreviewExecuted a směrované události, stejně jako související připojené události.

public delegate void ExecutedRoutedEventHandler(System::Object ^ sender, ExecutedRoutedEventArgs ^ e);
public delegate void ExecutedRoutedEventHandler(object sender, ExecutedRoutedEventArgs e);
type ExecutedRoutedEventHandler = delegate of obj * ExecutedRoutedEventArgs -> unit
Public Delegate Sub ExecutedRoutedEventHandler(sender As Object, e As ExecutedRoutedEventArgs)

Parametry

sender
Object

Objekt, ke kterému je připojena obslužná rutina události.

e
ExecutedRoutedEventArgs

Data události

Příklady

Tento příklad vytvoří ExecutedRoutedEventHandler vlastnost vizuálu v cíli při spuštění příkazu. Příklad obsahuje CanExecuteRoutedEventHandler také příkaz pro stejný příkaz.

// ExecutedRoutedEventHandler for the custom color command.
private void ColorCmdExecuted(object sender, ExecutedRoutedEventArgs e)
{
    Panel target = e.Source as Panel;
    if (target != null)
    {
        if (target.Background == Brushes.AliceBlue)
        {
            target.Background = Brushes.LemonChiffon;
        }
        else
        {
            target.Background = Brushes.AliceBlue;
        }
    }
}

// CanExecuteRoutedEventHandler for the custom color command.
private void ColorCmdCanExecute(object sender, CanExecuteRoutedEventArgs e)
{
    if (e.Source is Panel)
    {
        e.CanExecute = true;
    }
    else
    {
        e.CanExecute = false;
    }
}
' ExecutedRoutedEventHandler for the custom color command.
Private Sub ColorCmdExecuted(ByVal sender As Object, ByVal e As ExecutedRoutedEventArgs)
    Dim target As Panel = TryCast(e.Source, Panel)
    If target IsNot Nothing Then
        If target.Background Is Brushes.AliceBlue Then
            target.Background = Brushes.LemonChiffon
        Else
            target.Background = Brushes.AliceBlue
        End If

    End If
End Sub

' CanExecuteRoutedEventHandler for the custom color command.
Private Sub ColorCmdCanExecute(ByVal sender As Object, ByVal e As CanExecuteRoutedEventArgs)
    If TypeOf e.Source Is Panel Then
        e.CanExecute = True
    Else
        e.CanExecute = False
    End If
End Sub

Poznámky

Tento delegát obsahuje logiku implementace pro RoutedCommand. Oddělení logiky implementace od příkazu umožňuje vyvolat příkaz z různých zdrojů a typů a umožňuje centralizaci logiky příkazů.

Tento delegát se používá také pro CommandManager.Executed a CommandManager.PreviewExecuted, což jsou připojené události ve CommandManager třídě, která implementuje velkou část infrastruktury příkazů. Ale většina praktických obslužných rutin bude zpracovávat Executed události z konkrétního CommandBinding, nikoli pracovat na CommandManager úrovni.

V nástroji ExecutedRoutedEventArgsjsou při zápisu obslužné rutiny události pro směrovanou událost, která je výsledkem spuštěného příkazu, obecně zajímavé následující vlastnosti:

  • Source hlásí cíl, ve kterém byl příkaz proveden. Po spuštění příkazu si také obecnější termíny směrovaných událostí můžete představit Source jako objekt, který vyvolal směrovanou událost.

  • Command hlásí příkaz, který se spustil. Tato vlastnost je užitečná, pokud používáte vazby příkazů a pokud píšete obslužné rutiny, které potenciálně zpracovávají více příkazů.

  • Parameter hlásí všechny parametry specifické pro příkaz, které byly předány prováděcím příkazem. Ne všechny příkazy používají nebo očekávají parametry specifické pro příkaz.

  • Handled sestavuje, jestli směrovaná událost, která byla výsledkem spuštěného příkazu, již byla zpracována jiným elementem na trase. U obslužných rutin směrovaných událostí se doporučuje mít obslužné rutiny, které odvládnou smysluplnou práci při zpracování události nastavené Handled na truehodnotu . Tím se zabrání tomu, aby typické obslužné rutiny události znovu zpracovávaly událost dále na trase. Další informace o zpracování směrovaných událostí najdete v tématech Označení směrovaných událostí jako zpracovaných a Zpracování tříd.

Tento delegát také představuje obslužné rutiny pro CommandManager.Executed a CommandManager.PreviewExecutedEvent, což jsou připojené události ve CommandManager třídě, která implementuje velkou část infrastruktury příkazů. Ale většina praktických obslužných rutin bude zpracovávat Executed události z konkrétního CommandBinding, nikoli pracovat na CommandManager úrovni.

Další informace o ovládání najdete v tématu Přehled příkazů.

Metody rozšíření

GetMethodInfo(Delegate)

Získá objekt, který představuje metodu reprezentovanou zadaným delegátem.

Platí pro

Viz také