Wie wird die TableViewColumn-Liste an die untergeordnete TableView weitergegeben?

Ich versuche, eine benutzerdefinierte Komponente für bearbeitbare Tabellen in QML zu erstellen:

// BaseTableView.qml
import QtQuick 2.3
import QtQuick.Controls 1.2

Item {
    signal addActionPerformed()
    signal editActionPerformed(int id)
    signal deleteActionPerformed(int id)

    property var model

    ToolBar {
        id: toolBar
        anchors.left: parent.left
        anchors.right: parent.right

        Row {
            ToolButton {
                id: addButton
                iconSource: "qrc:/icons/actions/add.png"
                onClicked: addActionPerformed()
            }

            ToolButton {
                id: editButton
                enabled: false
                iconSource: "qrc:/icons/actions/edit.png"
            }

            ToolButton {
                id: deleteButton
                enabled: false
                iconSource: "qrc:/icons/actions/delete.png"
            }
        }
    }

    TableView {
        id: tableView
        model: parent.model
        anchors.left: parent.left
        anchors.right: parent.right
        anchors.top: toolBar.bottom
        anchors.bottom: parent.bottom

        onCurrentRowChanged: {
            editButton.enabled = currentRow !== null
            deleteButton.enabled = currentRow !== null
        }
    }
}

und benutze diese Komponente in einer anderen Datei wie dieser:

// Another.qml file
import QtQuick 2.3
import QtQuick.Controls 1.2

import "../common" // Here is BaseTableView.qml

BaseTableView {

    TableViewColumn {
        role: "id"
        title: qsTr("Id")
    }

    TableViewColumn {
        role: "object_expression"
        title: qsTr("Expression")
    }
}

Also, Problem ist, wie ich Tabellenansichtsspalten von der Verwendung an die zugrunde liegende TableView übergeben kann? Ich habe versucht, eine Eigenschaftsliste in BaseTableView zu erstellen und dieser Eigenschaft in Aother.qml eine Liste von Objekten zuzuweisen. aber erfolglos.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage