开门见山,在delegate具体深层次项中设个Id,然后在delegate的最大项里设个别名,适用冒号属性绑定深层次项id.某个属性,
如:property alias TaskNameText: inputTextTaskName.text
举个例子:
import QtQuick 2.0
import QtQuick.Controls 2.0
ListView {
id: listView
width: 200
height: 200
model: ListModel {
id: listModel
ListElement {
name: "Item 1"
nestedItem: {
text: "Nested Item 1"
nestedItem: {
description: "Description of Nested Item 1.1"
}
}
}
// ...
}
delegate: Item {
width: 100
height: 50
property alias nestedItemDescription: nestedItemText.text // 创建一个别名以便访问更深层级Text的text属性
Text {
text: model.name // 访问第一层级属性
}
Item { // 嵌套层级
Text {
id: nestedItemText
text: model.nestedItem.text // 访问第二层级属性
}
Item { // 更深层级
Text {
text: model.nestedItem.nestedItem.description // 访问第三层级属性
}
}
}
}
}
上面代码中,我们可以在外部可以这样访问第一个delegate项的深层次项的具体属性值:
listView.itemAtIndex(0).nestedItemDescription,这就是嵌套层级的Text里的text属性值