如何在上下文菜单项上添加复选标记

本文关键字:添加 上下文 菜单项 | 更新日期: 2023-09-27 18:18:13

我有一个WPF应用程序与Caliburn Micro。在我的DataGrid上,我有一个包含两个项目的上下文菜单,它们代表两个可供选择的选项。我如何在项目上添加复选标记?

下面是我的代码:
    <DataGrid.ContextMenu>
                    <ContextMenu >
                        <MenuItem Header="Treat Invalid Billing Address As Error"  cal:Message.Attach="[Event Click] = [Action TreatInvalidBillingAddressAs('Error')]" />
                        <MenuItem Header="Treat Invalid Billing Address As Warning"  cal:Message.Attach="[Event Click] = [Action TreatInvalidBillingAddressAs('Warning')]" />
                    </ContextMenu>
   </DataGrid.ContextMenu>

   public void TreatInvalidBillingAddressAs(string errorOrWarning)
   {
       SelectedFirstEntry.BillingAddressValidation = errorOrWarning;
       Revalidate();
   }

谢谢

如何在上下文菜单项上添加复选标记

正如评论中提到的,要控制MenuItem的检查状态,您可以将MenuItem.IsChecked属性绑定到视图模型的BillingAddressValidation属性。

由于这是针对每一行的视图模型的属性,并且ContextMenu针对整个DataGrid进行防御,因此可以使用SelectedFirstEntry项。

<MenuItem ... IsChecked="{Binding SelectedFirstEntry.BillingAddressValidation, Converter={StaticResource ErrorToBoolConverter}}"/>