从 ListView 部分委托访问 ListModel
Accessing ListModel from ListView Section Delegate
我是 QML/Qt Quick 的新手,我想使用包含 属性 部分的 ListView。主要目标是在我的 UI 上创建可折叠的 ListView。我的问题是部分委托 LoadcaseListElement 需要来自 ListView 模型的一些数据,这里是 loadcaseModel。但是我无法从我的 Section Delegate Element LoadcaseListElement 访问我的 ListView 模型。 (我可以从 layerDelegateItem 的 ListView Delegate 访问它)。
这里是简化的代码片段:(为了清晰起见,该片段不包括所有 js 函数、元素属性等以实现折叠操作。)
ListModel {
id: loadcaseModel
ListElement {loadcaseId:"1"; name:"LC1_Honeycomb Radome LLD3"; plyCount:"7"; layerId: "5001"}
ListElement {loadcaseId:"1"; name:"LC1_Honeycomb Radome LLD3"; plyCount:"7"; layerId: "5002"}
}
ListView {
id: loadcaseListView
anchors.fill: parent
model: loadcaseModel
delegate: LayerDelegate {
id: layerDelegateItem
anchors {
left: parent.left
leftMargin: 2
right: parent.right
rightMargin: 2
}
}
section {
property: "loadcaseId"
criteria: ViewSection.FullString
delegate: LoadcaseListElement {
listElementLoadcaseNumber: model.loadcaseId
}
}
}
感谢您的帮助...
埃内斯
如果您唯一需要访问的数据是您正在分段的 属性,那么您应该能够使用 section
中提到的附加 属性 13=]:
section {
property: "loadcaseId"
criteria: ViewSection.FullString
delegate: LoadcaseListElement {
listElementLoadcaseNumber: section
}
}
更新:
您正试图以非预期的方式使用 section
,因此您 运行 遇到了障碍。我建议首先以嵌套方式组织您的模型。然后让您的代表足够聪明 expand/hide 它的元素子列表。 是一个示例,展示了执行此操作的一种方法。
我是 QML/Qt Quick 的新手,我想使用包含 属性 部分的 ListView。主要目标是在我的 UI 上创建可折叠的 ListView。我的问题是部分委托 LoadcaseListElement 需要来自 ListView 模型的一些数据,这里是 loadcaseModel。但是我无法从我的 Section Delegate Element LoadcaseListElement 访问我的 ListView 模型。 (我可以从 layerDelegateItem 的 ListView Delegate 访问它)。
这里是简化的代码片段:(为了清晰起见,该片段不包括所有 js 函数、元素属性等以实现折叠操作。)
ListModel {
id: loadcaseModel
ListElement {loadcaseId:"1"; name:"LC1_Honeycomb Radome LLD3"; plyCount:"7"; layerId: "5001"}
ListElement {loadcaseId:"1"; name:"LC1_Honeycomb Radome LLD3"; plyCount:"7"; layerId: "5002"}
}
ListView {
id: loadcaseListView
anchors.fill: parent
model: loadcaseModel
delegate: LayerDelegate {
id: layerDelegateItem
anchors {
left: parent.left
leftMargin: 2
right: parent.right
rightMargin: 2
}
}
section {
property: "loadcaseId"
criteria: ViewSection.FullString
delegate: LoadcaseListElement {
listElementLoadcaseNumber: model.loadcaseId
}
}
}
感谢您的帮助...
埃内斯
如果您唯一需要访问的数据是您正在分段的 属性,那么您应该能够使用 section
中提到的附加 属性 13=]:
section {
property: "loadcaseId"
criteria: ViewSection.FullString
delegate: LoadcaseListElement {
listElementLoadcaseNumber: section
}
}
更新:
您正试图以非预期的方式使用 section
,因此您 运行 遇到了障碍。我建议首先以嵌套方式组织您的模型。然后让您的代表足够聪明 expand/hide 它的元素子列表。