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

时间:2014-08-14 15:37:08

标签: c# wpf caliburn.micro

我有一个使用Caliburn Micro的WPF应用程序。在我的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();
   }

由于

1 个答案:

答案 0 :(得分:1)

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

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

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