从 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 它的元素子列表。 是一个示例,展示了执行此操作的一种方法。