2012-10-17 24 views
5

Làm cách nào để chuyển vào một enum bên trong một hành động thư? ví dụ,Vượt qua một enum như một đối số trong hành vi của caliburn vi

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

Bạn có thể ràng buộc Menu để một bộ sưu tập của MenuItems, MenuItem sẽ có một thuộc tính Name và ArrowType. –

Trả lời

13

Bạn chỉ cần phải vượt qua giá trị Enum như một string:

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

Cảm ơn, nên được ghi lại. – juFo

Các vấn đề liên quan