Same question: WPF ContextMenu with ItemsSource - how to bind to Command in each item?
I tried implementing it as below but no dice.
Currently have in my 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>
Command does work if I use:
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Header="Woooo" Command="{Binding ReassignFileCommand}" />
</ContextMenu>
</DataGrid.ContextMenu>
Needed to change to (Solution):
<Setter Property="Command" Value="{Binding Path=DataContext.ReassignFileCommand, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContextMenu}}}" />