ExecutedRoutedEventHandler Delegát

Definice

Představuje metodu, která bude zpracovávat Executed a PreviewExecuted 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, kde 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 také obsahuje stejný CanExecuteRoutedEventHandler 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 z příkazu umožňuje, aby byl příkaz vyvolán z různých zdrojů a typů, a umožňuje centralizaci logiky příkazu.

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

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

  • Source hlásí cíl, ve kterém byl příkaz proveden. Jakmile se příkaz spustí, můžete si také představit Source obecnější směrované události termíny, 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 spuštěním příkazu. Ne všechny příkazy používají nebo očekávají parametry specifické pro příkazy.

  • Handled hlásí, zda směrovaná událost, která byla výsledkem spuštěného příkazu, již byla zpracována jiným prvkem podél trasy. Pro obslužné rutiny směrovaných událostí se doporučuje mít obslužné rutiny, které při zpracování události, na které je nastavena Handledtrue, smysluplnou práci . To zabraňuje typické obslužné rutině události, aby událost znovu zpracovávala podél trasy. Další informace o zpracování směrovaných událostí naleznete v tématu Označení směrovaných událostí jako zpracovávaných a zpracování tříd.

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

Další informace o příkazech najdete v tématu Přehled příkazů.

Metody rozšíření

Name Description
GetMethodInfo(Delegate)

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

Platí pro

Viz také