同じ質問:ItemsSourceを使用したWPFコンテキストメニュー-各アイテムのコマンドにバインドする方法は?
以下のように実装してみましたが、サイコロはありません。
現在私のXAMLにあります:
<DataGrid.ContextMenu>
<ContextMenu ItemsSource="{Binding Users}">
<ContextMenu.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=UID, Converter={StaticResource UserConverter}}"/>
</DataTemplate>
</ContextMenu.ItemTemplate>
<ContextMenu.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Command" Value="{Binding ReassignFileCommand}" />
</Style>
</ContextMenu.ItemContainerStyle>
</ContextMenu>
</DataGrid.ContextMenu>
次を使用すると、コマンドは機能します。
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Header="Woooo" Command="{Binding ReassignFileCommand}" />
</ContextMenu>
</DataGrid.ContextMenu>
(ソリューション)に変更する必要があります:
<Setter Property="Command" Value="{Binding Path=DataContext.ReassignFileCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContextMenu}}}" />