好吧,我只是想从选择的 ListView 中获取值并将其传递到下一个屏幕(页面)。但我无法做到,因为它显示错误,如
asset:///main.qml:25: TypeError: Result of expression 'dataModel.model' [undefined] is not a function.
我下面的一段代码如下
这段代码是我的main.qml
NavigationPane
{
id:navi
Page
{
Container
{
background: Color.Transparent
topMargin:2.0
TextField {
id: lb1
text:""
}
ListView
{
topMargin: 2.0
dataModel: XmlDataModel { source: "model.xml" }
onTriggered: {
console.log("onTriggered");
// Retrieve the selected item
var selectedItem = dataModel.data(indexPath);
lb1.text = selectedItem.status;
pushed.lb2.text="You Selected :" + lb1.text;
navi.push(pushed)
}
}
}
}
attachedObjects: [
Page2 {
id: pushed
}
]
}
这段代码是我的第二页Page2.qml,我想从main.qml中检索信息
import bb.cascades 1.0
Page {
property alias lb2: lb2
Container {
horizontalAlignment: HorizontalAlignment.Center
Label {
id:lb2
horizontalAlignment: HorizontalAlignment.Center
verticalAlignment: VerticalAlignment.Center
text: "You Selected :" + lb1
}
}
}
我是这个开发的新手。
最佳答案
您可以像下面的代码一样在触发器上获取模型的当前项目..
onTriggered: {
var selectedItem = dataModel.data(indexPath);
textField.text = selectedItem.status;
}
您可以从 Responding to selection 了解更多信息.
更新:
您必须设置别名才能将数据从一个页面传递到另一个页面。
你的错误有问题..
1) 删除 OnTriggerd 中下一行的文本。
pushed.lb2 ="You Selected :" + lb1.text;
2) 正确设置别名
property alias lb2: lb2.text
关于listview - 如何从级联黑莓中的 ListView 中获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19004609/