をListBox
追加したがありContextMenu
ます。内の項目の 1 つをContextMenu
コマンドにバインドし、そのコマンドに渡されるパラメーターをListBox
コントロールの現在選択されている項目にしたいと考えています。これが私のxamlです:
<ListBox x:Name="selectedVascularBeds"
ItemsSource="{Binding Path=UserSelectedVascularBeds}"
dd:DragDrop.IsDropTarget="True"
dd:DragDrop.DropHandler="{Binding}"
DisplayMemberPath="VascularBedName">
<ListBox.ContextMenu>
<ContextMenu>
<MenuItem Header="Remove" Command="{Binding Path=RemoveSelectedVascularBedCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource
Mode=FindAncestor,
AncestorType={x:Type ListBox}},
Path=SelectedItem}"/>
</ContextMenu>
</ListBox.ContextMenu>
</ListBox>
これListBox
は、ビュー モデル オブジェクトにバインドされたユーザー コントロールの一部です。基になるオブジェクトのコマンド メソッドが呼び出されますが、渡されるパラメーターは常に null です。
CommandParameter
to のバインドを単純に変更してテストした{Binding}
ところ、ユーザー コントロールのデータ コンテキストがメソッドに渡されました。その結果、コマンドが機能し、パラメーターが正しく渡されていることがわかりました。ListBox
のSelectedItem
プロパティにアクセスするための正しいバインディングを取得できないようです。
ヘルプ?