如何在上下文菜单项上添加复选标记
本文关键字:添加 上下文 菜单项 | 更新日期: 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}}"/>