QML的ListView如何访问代理内部的function

#情况是想实现一个包含多个相同的复杂子项的界面,在外部需要调用子项的一些函数。原本用Column是可以直接用children访问到代理内部的函数,但Column不支持中见插入和删除,所以改用ListView进行替换,但是却发现ListModel无法访问代理的内部函数,想过通过调用C++发送信号到内部子项,但是却发现内部子项接收不到C++的信号;又尝试通过ListView访问ContainItem,但是还是失败了(这条路可能能行,但我没走通),所以发出来,希望有人看到能解答一下,万分感谢!
#QML的ListView访问代理项内部的function时报错
精简代码

import QtQuick 2.14
Item {
    ListModel {
        id: myModel
    }
    ListView {
        id: view
        width: parent.width
        height: parent.height - btn.height
        anchors.left: parent.left
        anchors.top: parent.top
        interactive: false
        model: myModel
        delegate: myDeletgate
    }
    Component {
        id: myDeletgate
        Item {
            width: view.width
            height: 30
            Text {
                anchors.left: parent.left
                anchors.leftMargin: 10
                anchors.verticalCenter: parent.verticalCenter
                verticalAlignment: Text.AlignVCenter
                text: name
            }
            function doSomeThing() {
                console.log("doSomeThing !!!!!!!!!!!!!!!!!!!!!!!");
            }
        }
    }
    Rectangle {
        id: btn
        width: parent.width
        height: 30
        anchors.left: parent.left
        anchors.bottom: parent.bottom
        color: "blue"
        MouseArea {
            anchors.fill: parent
            onClicked: {
                console.log("",myModel.get(1).name);//访问
                myModel.get(1).name = "666666666666666666666666666";
                console.log("",myModel.get(1).name);//修改
                myModel.insert(1, {name: qsTr("777777777777777777777777777")});//插入
                myModel.remove(2);//删除
                myModel.get(1).doSomeThing();//调用方法
            }
        }
    }
    Component.onCompleted: {
        myModel.append({name: qsTr("111111111111111111111111111")});//追加
        myModel.append({name: qsTr("222222222222222222222222222")});
    }
}

点下按钮后的提示
qml: 222222222222222222222222222
qml: 666666666666666666666666666
qrc:/MyList.qml:50: TypeError: Property 'doSomeThing' of object QObject(0x5483130) is not a function

“通过调用C++发送信号到内部子项,但是却发现内部子项接收不到C++的信号;” 解决办法:把接收信号的地方放到顶层(Component定义的Item内)即可接收到,如果像我之前已经封装过的文件内(Component直接包含的UserItem文件)是无法接收到C++发送的信号的。

        delegate: Component {
            UserItem {
                width: view.width
                height: 30
                property variant mymodel: model
                Text {
                    anchors.left: parent.left
                    anchors.leftMargin: 10
                    anchors.verticalCenter: parent.verticalCenter
                    verticalAlignment: Text.AlignVCenter
                    text: name
                }
                MouseArea {
                    anchors.fill: parent
                    onClicked: {
                        parent.ListView.view.currentIndex = index
                    }
                }
                Connections {
                    target: btn_mouse
                    onClicked: {
                        doSomeThing();
                    }
                }
            }
        }

doSomeThing();定义在UserItem内,这样也可以接收信号,前提是像府上的这段代码把Connections定义在代理的顶层