我需要一个包含项目的上下文菜单:删除行,插入行
我需要在不同的网格中显示这些上下文菜单项。但是,这些选项的行为基于选定的网格数据源。
是否有任何通用方法可以解决此问题,而不会破坏 MVVM?
我正在做的是:创建一个自定义上下文菜单并公开每个上下文菜单项的依赖项属性。因此,它们可以在每个网格中单独绑定。
我们还有其他方法来解决这个问题吗?
答案是 42。
玩笑!!!
由于您尚未发布任何代码,因此我将发布一些代码。
这就是为单元格创建 ContextMenu 的方式。
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text={Binding}>
<TextBlock.ContextMenu>
<ContextMenu>
<MenuItem Header="Copy"/>
<MenuItem Header="Paste"/>
<MenuItem Header="Clear"/>
</ContextMenu>
</TextBlock.ContextMenu>
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
您可以根据需要配置每个 MenuItem,例如在每个 MenuItem 上附加依赖属性或从每个项目触发附加事件,或者订阅单击事件。