Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passing an enum as an argument in caliburn micro's action

How do I pass in an enum inside a message action? for instance,

XAML:

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

ViewModel:

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

}

public enum LogicArrowEnum
{
    ARROW = 1,
    ASSIGN = 2,
    IF = 3,
    IF_ELSE = 4
}
like image 995
l46kok Avatar asked Oct 17 '12 12:10

l46kok


1 Answers

You just need to pass the Enum value as a string:

<MenuItem Header="Arrow" cal:Message.Attach="ChangeArrowType('ARROW')"/>
like image 142
nemesv Avatar answered Oct 13 '22 10:10

nemesv