原写法是这样的
<ContextMenu StaysOpen="true">
<MenuItem Header="删行">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding DeleteItem}" CommandParameter="{Binding ElementName = WorkFlowDG}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</MenuItem>
</ContextMenu>
通过断点测试发现参数没有传递过来,是空的,
以下是修改后的代码:
<ContextMenu StaysOpen="true">
<MenuItem Header="删行">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding DeleteItem}" CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContextMenu}}, Path=PlacementTarget.SelectedItems}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</MenuItem>
</ContextMenu>
看看效果:
通过断点测试,已经将数据源的参数传递过来了。记录一下。