/ /コンテキストメニューで選択した項目を取得する方法 - wpf

コンテキストメニューで選択項目を取得する方法 - wpf

私はバインディングアイテムを持っているコンテキストメニューを持っているので、コマンドとコマンドパラメータを設定して、どのアイテムがクリックされたのかを知りたいのですが、どうしたらいいかわかりません。

<MenuItem Command="{Binding Sync}"
Header="Synchronize"
ItemsSource="{Binding ItemsToSync}">
<MenuItem.Icon>
<Image Height="25" Source="Sync.png" />
</MenuItem.Icon>
</MenuItem>

回答:

回答№1の場合は3

次のようなことを試すことができます: この例ではリストビューがあり、選択した項目を右クリックして削除できます。私がRelativeSourceを使用している理由は、menuitemsでパラメータを渡す場合、このレベルのほとんどの時間はページのデータコンテキストに到達できないからです。お役に立てれば。

               <ListView.ContextMenu>
<ContextMenu>
<MenuItem Header="Delete" Command="{Binding Path=DeleteDescriptions}" CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=ContextMenu}, Path=PlacementTarget.SelectedItem}" Name="MenuItem1">
</MenuItem>
</ContextMenu>
</ListView.ContextMenu>

回答№2の場合は1

それは助けにはなりませんでしたが、自分のソリューションを作成することができました。

 <MenuItem Header="Synchronize" ItemsSource="{Binding ItemsToSync}">
<MenuItem.Icon>
<Image Height="25" Source="Sync.png" />
</MenuItem.Icon>
<MenuItem.ItemContainerStyle>
<Style>
<Setter Property="MenuItem.Header" Value="{Binding Name}" />
<Setter Property="MenuItem.IsChecked" Value="{Binding IsCurrent}" />
<Setter Property="MenuItem.Command" Value="PT:Commands.SyncFromContextMenu" />
<Setter Property="MenuItem.CommandParameter" Value="{Binding}" />
</Style>
</MenuItem.ItemContainerStyle>

</MenuItem>
</MenuItem>

私はコマンドの静的クラスを作成しなければならなかった。