推送到 StackView 的组件未正确绑定

Component pushed on StackView does not bind correctly

下面的例子说明了我的问题。 我在左上角创建了一个小 Rectangle,单击它可以在红色和绿色之间切换颜色。

接下来,我创建一个 StackView 并将 Rectangle 推到 StackView 并将第二个矩形的颜色绑定到左上角矩形的颜色

预期的行为是,单击左上角 Rectangle 也会更改 StackViewRectangle 的颜色,因为颜色已绑定。不幸的是,情况并非如此。

请注意,将 stackRect2 推入堆栈时一切正常(请参阅注释中的行)

import QtQuick 2.0
import QtQuick.Window 2.2
import QtQuick.Controls 1.4

Window {
    id: mainWindow
    visible: true
    width: 1280
    height: 720

    Rectangle {
        id: rect
        width: 100
        height: 100
        focus: true

        color: toggle? "red":"green"
        property var toggle:false;
        MouseArea {
            anchors.fill: parent
            onClicked: rect.toggle = !rect.toggle
        }
    }

    StackView {
        id: stack
        width: 100
        height:100
        anchors.left: rect.right
        anchors.leftMargin: 10

        Component.onCompleted: {
            stack.push ({item:stackRect, properties: {color:rect.color}})
            //stack.push ({item:stackRect2})
        }
    }

    Component {
        id:stackRect
        Rectangle {}
    }
    Component {
        id:stackRect2
        Rectangle {color:rect.color}
    }
}

Apparently,此行为是预期行为,符合 Component::createObject()。 使用

    stack.push (stackRect,  {color:Qt.binding(function() { return rect.color})})

工作正常。