RoutedCommand.Execute(Object, IInputElement) Metoda
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í.
Provede příkaz RoutedCommand na aktuálním cíli příkazu.
public:
void Execute(System::Object ^ parameter, System::Windows::IInputElement ^ target);
[System.Security.SecurityCritical]
public void Execute (object parameter, System.Windows.IInputElement target);
public void Execute (object parameter, System.Windows.IInputElement target);
[<System.Security.SecurityCritical>]
member this.Execute : obj * System.Windows.IInputElement -> unit
member this.Execute : obj * System.Windows.IInputElement -> unit
Public Sub Execute (parameter As Object, target As IInputElement)
Parametry
- parameter
- Object
Parametr definovaný uživatelem, který se má předat obslužné rutině.
- target
- IInputElement
Element, ve kterém chcete začít hledat obslužné rutiny příkazů.
- Atributy
Výjimky
target
není nebo UIElementContentElement.
Příklady
Následující příklad je z vlastní implementace ukázky ICommandSource .
this.Command
v tomto příkladu je vlastnost Command na ICommandSource. Pokud příkaz nemá hodnotu null, je příkaz přetypován na RoutedCommand. Pokud se jedná o RoutedCommand, pak se Execute metoda nazývá předávání CommandTarget a CommandParameter. Pokud příkaz není RoutedCommand, je přetypován na objekt ICommand a Execute metoda se nazývá předání .CommandParameter
// If Command is defined, moving the slider will invoke the command;
// Otherwise, the slider will behave normally.
protected override void OnValueChanged(double oldValue, double newValue)
{
base.OnValueChanged(oldValue, newValue);
if (this.Command != null)
{
RoutedCommand command = Command as RoutedCommand;
if (command != null)
{
command.Execute(CommandParameter, CommandTarget);
}
else
{
((ICommand)Command).Execute(CommandParameter);
}
}
}
' If Command is defined, moving the slider will invoke the command;
' Otherwise, the slider will behave normally.
Protected Overrides Sub OnValueChanged(ByVal oldValue As Double, ByVal newValue As Double)
MyBase.OnValueChanged(oldValue, newValue)
If Me.Command IsNot Nothing Then
Dim command As RoutedCommand = TryCast(Me.Command, RoutedCommand)
If command IsNot Nothing Then
command.Execute(CommandParameter, CommandTarget)
Else
CType(Me.Command, ICommand).Execute(CommandParameter)
End If
End If
End Sub
Poznámky
Skutečná logika, která provádí metodu RoutedCommand , není obsažena Execute v metodách. Execute PreviewExecuted vyvolává události aExecuted, které tunelují a bubliny procházejí stromem prvků a hledají objekt s CommandBinding. Pokud je nalezena CommandBinding hodnota pro RoutedCommand , pak ExecutedRoutedEventHandler je volána připojená k CommandBinding . Tyto obslužné rutiny poskytují programovací logiku RoutedCommand, která provádí .
Události PreviewExecuted a Executed jsou vyvolány na CommandTarget. CommandTarget Pokud není nastavena na ICommandSource, PreviewExecuted události a Executed jsou vyvolány na elementu s fokusem klávesnice.