CommandParameterをWinRTのコマンドに渡すことはできますか?どのように?
2 に答える
はいといいえ。WinRTアプリケーションは、Application.OnLaunchedオーバーライドを介してパラメーターを受け取ることができます。
オーバーライドは、引数を含むタイプLaunchActivatedEventArgsのインスタンスを受け取ります。
したがって、引数を受け取ることは可能です。問題は、引数をどのように渡すことができるかということです。
Windowsストア(WinRT)アプリケーションはコマンドラインから起動できません。WinRTアプリケーションがファイルの種類に関連付けられている場合は、ファイルに対してShellExecuteを呼び出すことで起動できます。それ以外の場合、アプリケーションを直接起動することはできません。
IAplicationActivationManagerインターフェイスを使用してWinRTアプリケーションを起動するC++を記述でき、このインターフェイスは起動されたアプリケーションにパラメーターを渡すことができます。したがって、コマンドラインから呼び出すことができるC++ランチャー実行可能ファイルを作成できます。
このインターフェイスを使用してアプリケーションを起動する方法の詳細については、次のフォーラム投稿を参照してください。
実は、私はあなたの質問を完全に誤解していたかもしれません。UI コマンド (ICommand インターフェイスを実装するコマンド) について話している場合は、Executeを呼び出すときにパラメーターを渡すことができます。CanExecuteを呼び出して、コマンドを実行する前に、コマンドとパラメーターが有効かどうかをテストすることもできます。
Button バインディングの一部としてパラメーターを渡す場合は、Commandプロパティをボタンで実行するコマンドと等しくなるように設定し、CommandParameterプロパティを渡したいパラメーターと等しくなるように設定します。