Одним из решений было бы использование объекта Binding
для обновления myProperty
внутри MyCustomComponent
вместо прямого изменения значения:
// MyCustomComponent.qml
Item
{
property var myProperty: null
Binding on myProperty
{
id: myPropertyUpdater
function set(newValue) {value = newValue; when = true; when = false;}
when: false
}
MouseArea
{
anchors.fill: parent
onClicked: myPropertyUpdater.set("some text or other value")
}
}
Хитрость заключается в том, чтобы в скором времени установить when
свойство Binding
в true, чтобы распространять новое значение.После инактивации Binding
(when = false;
) любое предыдущее прямое связывание будет восстановлено, как указано в документах :
Когда связывание снова станет неактивным, любое прямоепривязки, которые ранее были установлены для свойства, будут восстановлены.