2012-10-17 3 views
5

Come passare un enum all'interno di un'azione di un messaggio? per esempio,Passaggio di un enum come argomento nell'azione di caliburn micro

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 
} 
+0

Si potrebbe associare il menu a un raccolta di MenuItems, MenuItem avrebbe una proprietà Name e ArrowType. –

risposta

13

Hai solo bisogno di passare il valore Enum come string:

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

Grazie, dovrebbe essere documentato. – juFo