如何从级联黑莓中的listview获取价值

时间:2013-09-25 12:13:53

标签: listview blackberry-10 cascade

好吧,我只是想从选择列表视图中获取值并将其传递到下一个屏幕(页面)。但我无法做到,因为它显示错误,如

  

asset:///main.qml:25:TypeError:表达式'dataModel.model'的结果'[undefined]不是函数。

我的以下代码如下

此代码属于我的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
    }

  }
}

我是这个发展的新手。

1 个答案:

答案 0 :(得分:0)

您可以在Trigger上获取模型的当前项目,如下面的代码..

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