2012-10-17 56 views
5

如何傳入消息動作中的枚舉?例如,在caliburn micro的動作中傳遞enum作爲參數

XAML:

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

視圖模型:

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

} 

public enum LogicArrowEnum 
{ 
    ARROW = 1, 
    ASSIGN = 2, 
    IF = 3, 
    IF_ELSE = 4 
} 
+0

您可以在菜單綁定到MenuItem的集合,MenuItem將具有Name和ArrowType屬性。 –

回答

13

你只需要通過枚舉值作爲string

<MenuItem Header="Arrow" cal:Message.Attach="ChangeArrowType('ARROW')"/> 
+0

謝謝,應該記錄。 – juFo