我有一个使用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();
}
由于
答案 0 :(得分:1)
正如评论中所提到的,控制MenuItem
的已检查状态,您可以将MenuItem.IsChecked
属性绑定到视图模型的BillingAddressValidation
属性。
由于这是针对每一行的视图模型的属性,并且ContextMenu
针对整个DataGrid
,因此您可以使用SelectedFirstEntry
项。
<MenuItem ... IsChecked="{Binding SelectedFirstEntry.BillingAddressValidation, Converter={StaticResource ErrorToBoolConverter}}"/>