我有一个带有 Grid 的 ContentControl。每个 ListBoxItem 的 ContextMenu 都有一个模板。上下文菜单看起来像这样:
<ContentControl.Resources>
<ContextMenu x:Key="SimpleDataObjectContextMenu" DataContext="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource Self}}">
<MenuItem Header="Create" Command="{Binding AddRelation}" CommandParameter="..Name..of..caller.."/>
<MenuItem Header="Delete" Command="{Binding DeleteRelation}" CommandParameter="..Name..of..caller.."//>
</ContextMenu>
</ContentControl.Resources>
网格如下所示:
<Grid>
<Rectangle x:Name="LeftRectangle" Width="5" Height="5" Fill="Black" Margin="5" ContextMenu="{StaticResource SimpleDataObjectContextMenu}"/>
<TextBlock Text="{Binding Model.Name}"/>
<Rectangle x:Name="RightRectangle" Width="5" Height="5" Fill="Black" Margin="5" ContextMenu="{StaticResource SimpleDataObjectContextMenu}"/>
</Grid>
我想从“LeftRectangle”和“RightRectangle”(它们使用自己的 ContextMenu 模板“SimpleDataObjectContextMenu”)提交 x:Name 到“SimpleDataObjectContextMenu”,以便我可以将此名称作为模板中的 CommandParameter 提交。
而不是 ..Name..of..caller.. 例如,如果在左侧矩形上打开了 ContextMenu,我想发送“LeftRectangle”...
任何想法,我怎么能意识到这一点?