2012-10-17 33 views
5

मैं एक संदेश कार्रवाई के अंदर एक enum में कैसे गुजरता हूँ? उदाहरण के लिए,कैलिबर माइक्रो की कार्रवाई में एक तर्क के रूप में एक enum पास

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

तुम एक करने के लिए मेनू के लिए बाध्य कर सकता है MenuItems का संग्रह, MenuItem का नाम और एरोटाइप संपत्ति होगी। –

उत्तर

13

तुम सिर्फ एक string के रूप में Enum मूल्य पारित करने के लिए की जरूरत है:

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

धन्यवाद, दस्तावेज किया जाना चाहिए। – juFo