ExecutedRoutedEventHandler Delegát
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.
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
true
hodnotu . 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. |