我正在使用 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
. 对此问题的任何帮助或见解将不胜感激。