2013-01-14 19 views
1

我想在QML中创建不同的上下文菜单,但我不知道什么是正确的语法。我想这样做:如何指定条件ActionSets?

contextActions: [ 
           ActionSet { 
            title: "Action Set" 
            subtitle: "This is an action set." 

            actions: if (_corporate.currentView == 2) { 
             [ ActionItem { title: "Action 1" }, 
             ActionItem { title: "Action 2" }, 
             ActionItem { title: "Action 3" } ] 
             } else { 
             [ActionItem { title: "Action 4" }, 
             ActionItem { title: "Action 5" }, 
             ActionItem { title: "Action 6" } 
             ] 
             } 
           } // end of ActionSet 
         ] // end of contextActions list 

这显然是错误的语法,那么什么是正确的方法是什么?提前致谢!

回答

1

,我(使我的正确方法有不同数量的在不同情况下的上下文菜单项)是使用不同的元素,这些元素将根据上下文来选择。

在我的情况下,我有一个列表,我可以根据数据类型分开ListItemComponents。提问时我不太具体,对不起。

这里的正确答案,用代码示例:http://supportforums.blackberry.com/t5/Cascades-Development/Context-dependent-contextActions/td-p/2044783

什么是缺少有,是DataModel::itemType()功能的使用(在这种情况下至关重要)的例子,所以这里有一个例子:https://developer.blackberry.com/cascades/documentation/ui/lists/groupdatamodel.html

1

也许是这样的:

ActionItem { title: _corporate.currentView == 2 ? "Action 1" : "Action 4" } 

或者,如果你有更多的值来检查,用一个函数:

ActionItem { 
    title: getTitleForView(_corporate.currentView); 
    function getTitleForView(vid) { 
     switch (vid) { 
     case 1: 
     return "abc" 
     case 2: 
     return "qwerty" 
     } 
    } 
    } 
+0

谢谢!根据场景(如_corporate.currentView),不同数量的ActionItems怎么样? – Eir

相关问题