RoutedCommand.Execute(Object, IInputElement) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在のコマンドの対象で RoutedCommand を実行します。
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)
パラメーター
- parameter
- Object
ハンドラーに渡されるユーザー定義パラメーター。
- target
- IInputElement
コマンド ハンドラーの検索を開始する要素。
- 属性
例外
target
が UIElement または ContentElement ではありません。
例
次の例は、サンプルのカスタム実装の ICommandSource 例です。
this.Command
この例では、 の Command プロパティです ICommandSource。 コマンドが null でない場合、コマンドは に RoutedCommandキャストされます。 が のRoutedCommand場合、 メソッドは と をExecuteCommandTarget渡して呼び出されますCommandParameter。 コマンドが ではない RoutedCommand場合は に ICommand キャストされ、 Execute メソッドは を渡して呼び出されます 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
注釈
を実行する実際の RoutedCommand ロジックは、 メソッドに Execute 含まれていません。 Executeは イベントと Executed イベントをPreviewExecuted発生させます。このイベントは、 を持つCommandBindingオブジェクトを探して要素ツリーをトンネルしてバブルします。 CommandBindingがRoutedCommand見つかった場合は、 にExecutedRoutedEventHandlerアタッチされている CommandBinding が呼び出されます。 これらのハンドラーは、 を実行するプログラミング ロジックを提供します RoutedCommand。
PreviewExecutedイベントと Executed イベントは、 で発生しますCommandTarget。 CommandTargetが にICommandSourcePreviewExecuted設定されていない場合、 イベントと Executed イベントは、キーボード フォーカスを持つ 要素で発生します。
適用対象
.NET