将一个枚举作为参数在caliburn micro的动作中传递

l46*_*kok 5 .net c# wpf caliburn.micro

如何在消息操作中传入枚举?例如,

XAML:

<UserControl.ContextMenu>
    <ContextMenu StaysOpen="True">
        <MenuItem Header="Arrow"
                  cal:Message.Attach="ChangeArrowType(LogicArrowEnum.ARROW)"/>
     ....
Run Code Online (Sandbox Code Playgroud)

视图模型:

public void ChangeArrowType(LogicArrowEnum arrowType)
{
    MessageBox.Show(arrowType); //arrowType is empty!

}

public enum LogicArrowEnum
{
    ARROW = 1,
    ASSIGN = 2,
    IF = 3,
    IF_ELSE = 4
}
Run Code Online (Sandbox Code Playgroud)

nem*_*esv 14

您只需要将Enum值string传递:

<MenuItem Header="Arrow" cal:Message.Attach="ChangeArrowType('ARROW')"/>
Run Code Online (Sandbox Code Playgroud)

  • 也许当时不是这样,但从今天开始是这样。对于未来的读者,请在[此处]查找*枚举值*章节(https://caliburnmicro.com/documentation/actions) (2认同)