2013-01-14 53 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

相關問題