替换Listview Blackberry10中的虚拟图像的步骤

替换Listview Blackberry10中的虚拟图像的步骤,listview,qml,blackberry-10,blackberry-cascades,Listview,Qml,Blackberry 10,Blackberry Cascades,请帮我做这个 我在QML文件中创建了一个ListView,并用从web服务接收的数据填充它。由于此web服务不提供任何图像,因此我必须在该位置放置一个虚拟图像。然后我使用另一种方法从url获取图像。现在我在我的cpp文件中获取了图像。但是我无法更新我的listview。我试过很多方法,但都失败了。 这是我的代码片段 ListView { id: listView objectName: "listView" d

请帮我做这个

我在QML文件中创建了一个ListView,并用从web服务接收的数据填充它。由于此web服务不提供任何图像,因此我必须在该位置放置一个虚拟图像。然后我使用另一种方法从url获取图像。现在我在我的cpp文件中获取了图像。但是我无法更新我的listview。我试过很多方法,但都失败了。 这是我的代码片段

      ListView {
            id: listView
            objectName: "listView"

            dataModel: ArrayDataModel {
                id: myListModel

            }


            // Override default GroupDataModel::itemType() behaviour, which is to return item type "header"
            listItemComponents: ListItemComponent {
                id: listcomponent
                // StandardListItem is a convivience component for lists with default cascades look and feel
                StandardListItem {
                    id: stdlst
                    title: ListItemData.postText
                    description: ListItemData.postDate
                    status: ListItemData.filePath
                    imageSource: assets:///image.png
                }

            }
            layoutProperties: StackLayoutProperties {
                spaceQuota: 1.0
            }
            horizontalAlignment: HorizontalAlignment.Fill
            verticalAlignment: VerticalAlignment.Fill

        }

我需要将此listview中的imagSource替换为其他图像。我该如何做?

您需要做的是:而不是影响
assets:///image.png
对于您的
StandardListItem
,您应该影响
ListItemData
的一个属性,默认情况下您会将该属性初始化为
assets:///image.png
。完成后,在获取图像时,只需修改数据项的属性即可

假设显示的类被称为
DataElement

类数据元素:公共QObject{
Q_对象
Q_属性(QString postText READ getPostText常量);
Q_属性(QVariant image READ getImage WRITE setImage NOTIFY imageChanged);
//这里的其他属性。。。
公众:
数据元素(){
_postText=“默认文本”;
_image=QVariant::fromValue
(bb::cascades::Image(QUrl(“文件:/”+QDir::homePath()+“/Image.png”));
}
QVariant image()常量{
返回图像;
}
无效设置图像(QVariant图像){
如果(图像!=\u图像){
_图像=图像;
emit imageChanged();
}
}
//缺少其他属性等的方法
信号:
void imageChanged();
私人:
QString_postText;
QVariant_图像;
};
您的
列表项将如下所示:

StandardListItem{
id:stdlst
标题:ListItemData.postText
描述:ListItemData.postDate
状态:ListItemData.filePath
image:ListItemData.image
}

现在,当您加载图像时,您在
数据元素上调用
setImage
,视图将相应刷新。

请帮帮我(在上面的代码中,我从一个webservice调用中填充postText、postDate和filePath。但是由于这个webservice不提供任何图像,我只是在这个位置放置了一个虚拟图像。我只能在调用另一个webservice后获取图像。在获取图像QVariant后,我需要在StandardListItem.S的图像部分进行设置o可以这样更新图像吗?
StandardListItem
还有一个
image
属性。您需要将此属性绑定到一个自定义属性(如
postText
postDate
文件路径
)。正如您所猜测的,它应该是
QVariant
类型。在获得第二次调用Web服务的结果之前,您需要将自定义属性值设置为虚拟映像,然后在收到真实映像时将其替换。感谢您的回复…您是否可以为此提供示例代码…?如何将映像属性绑定到c我们的…?请帮帮我…:(