3

我正在使用 Blackberry 10 Cascades,我正在尝试使用ArrayDataModel. 到目前为止,我阅读的所有在线文档都给了我使用的示例XMLDataSource,但是由于我的数据是 JSON 并且来自实时提要,我宁愿不必将其序列化为 XML 以加载到XMLDataSource(其中从我粗略的调查来看,似乎很喜怒无常)。

我有一些代码给了我部分功能(正确的行数和列数),但是当尝试访问该pickerItemData属性时,结果总是未定义的。

以下代码展示了部分功能,改编http://developer.blackberry.com/native/reference/cascades/bb_ cascades_picker.html

控制台有一些调试输出,内容为

Picker: incorrect model, wrong columns number:  0 

不幸的是,这对我来说没有任何意义,因为它Picker正在渲染正确数量的列。似乎也没有关于错误消息的任何文档。

import bb.cascades 1.2

Page {
    Container {
        leftPadding: 24.0
        rightPadding: 24.0
        topPadding: 12.0
        bottomPadding: 12.0
        controls: [
            Picker {
                id: picker
                title: "Picker title"
                expanded: true
                rootIndexPath: []
                dataModel: ArrayDataModel {
                    id: dataModel
                }

                pickerItemComponents: [
                    PickerItemComponent {
                        type: "item1"

                        content: Container {
                            background: Color.create(pickerItemData.background)
                        }
                    },
                    PickerItemComponent {
                        type: "item2"

                        content: Container {
                            Label {
                                text: pickerItemData.text
                                textStyle.color: Color.create(pickerItemData.color)
                            }
                        }
                    }
                ]

                onCreationCompleted: {
                    dataModel.append([
                            {
                                "item1": [ {
                                        "background": "#ff0000ff"
                                    }, {
                                        "background": "#ff00ff00"
                                    },
                                    {
                                        "background": "#ffff0000"
                                    }, {
                                        "background": "#ff00ffff"
                                    } ]
                            },
                            {
                                "item2": [
                                    {
                                        "text": "Item 1",
                                        "color": "#ff888888"
                                    },
                                    {
                                        "text": "Item 2",
                                        "color": "#ff0000ff"
                                    },
                                    {
                                        "text": "Item 3",
                                        "color": "#ff00ff00"
                                    },
                                    {
                                        "text": "Item 4",
                                        "color": "#ff00ffff"
                                    },
                                    {
                                        "text": "Item 5",
                                        "color": "#ffff0000"
                                    },
                                    {
                                        "text": "Item 6",
                                        "color": "#ffff00ff"
                                    },
                                    {
                                        "text": "Item 7",
                                        "color": "#ffffff00"
                                    },
                                    {
                                        "text": "Item 8",
                                        "color": "#ffffffff"
                                    } ]
                            } ]);
                }

                onSelectedValueChanged: {
                    var index0 = picker.selectedIndex(0);
                    var index1 = picker.selectedIndex(1);
                    console.log("Selection: " + index0 + ", " + index1);
                }
            }
        ]
    }
}

通过 JSON 提供的数据结构与XMLDataSource. 对此问题的任何帮助或见解将不胜感激。

4

0 回答 0