興味深い問題は、私は私のコントロール、InsertRowCmdに行を挿入するためのコマンドを起動したい... WPFのコマンドには、コンテキストメニュー項目からコマンドを発射に関連
をのContextMenuの原点を通ります。このコマンドは、行を挿入する場所を知る必要があります。
私はMouse.GetPosition()を使用することができましたが、それは現在マウスの位置を取得します。これはメニュー項目の上になります。私は代わりにコンテキストメニューの起源を取得したい。
コンテキストメニューの原点をパラメータとしてコマンドに渡す方法についての提案はありますか?
サンプルコード:
- 使用クリックハンドラを代わりに私は、コードの原点を見つけることができるように、次のように
<UserControl x:Name="MyControl">
<!--...-->
<ContextMenu x:Name="menu">
<MenuItem Header="Insert Row" Command="{x:Static customCommands:MyCommands.InsertRowCmd}" CommandParameter="?"/>
</ContextMenu>
</UserControl>
私の現在の考え方
です。問題は、有効化/無効化を処理する必要があることです。- イベントをクリックしてコンテキストメニューの原点を保存します。この保存された情報をコマンドに渡します。コマンドが実行される前にクリックイベントが発生することを確認しました。
アイデア?
EDIT:
私は私のViewModelクラスに取り扱うジョシュ・スミスのCommandSinkBindingルートへのコマンドを使用しています。したがって、コマンドの実行を処理するコードはビューについて何も知らない。
"ConverterParameter"ではなく、最初に "CommandParameter"を意味すると思いますか? –
あなたは添付の行動の考え方について詳しく説明しますか? –
はい、ありがとう - 固定され、精巧さ。 –