У меня есть это в файле с именем ChildItem.qml
:Binding свойство детской собственности в QML
Item{
property var childProperty
}
В другом файле с именем ParentItem.qml
, я создаю родительский элемент и попытаться связать childProperty
свойству родителя:
Item{
property ChildItem childItem: null
property var parentProperty
childItem.childProperty: parentProperty
}
В main.qml
я инстанцирует оба объекта и привязать ссылку родителя к ребенку:
ApplicationWindow{
ChildItem{
id: childID
}
ParentItem{
id: parentID
childItem: childID
}
}
Это дает мне ошибку Cannot assign a value directly to a grouped property
на линии childItem.childProperty: parentProperty
. Я оборачиваюсь этим, меняя родительский счет следующим образом:
Item {
property ChildItem childItem: null
property var parentProperty
//childItem.childProperty: parentProperty
onParentPropertyChanged: childItem.childProperty = parentProperty
}
Но это выглядит и чувствует себя очень искусственно. Есть ли лучшие способы сделать это или другие предложения по изменению структуры по-другому?
Спасибо, 'Binding' кажется, что он потенциально может быть однострочным. Второй вариант, к сожалению, невозможен в моем сценарии, поскольку родительские/дочерние объекты должны быть в своих отдельных файлах для повторного использования. –