我有一个嵌套的listview结构,其中委托listview将包含另一个listview。我希望嵌套的listview的委托引用自己,因为嵌套的listview将包含与自身相同的项目类型,但这似乎不起作用。
Component {
id: subSequenceComponent
ItemDelegate {
id: subSequenceItemDelegate
property var id: edit.id
ColumnLayout {
Text{
text: edit.name
}
ListView {
width: 180; height: 200
model: items.subModelFromId(subSequenceItemDelegate.id)
delegate: subSequenceComponent
}
}
}
}
这有效:
Component {
id: subSequenceComponent
ItemDelegate {
id: subSequenceItemDelegate
property var id: edit.id
ColumnLayout {
Text{
text: edit.name
}
ListView {
width: 180; height: 200
model: items.subModelFromId(subSequenceItemDelegate.id)
delegate: Text{
text: edit.name
}
}
}
}
}
是否可以重用您所属的同一委托?
答案 0 :(得分:1)
它可能已连接到此bug。基本上,QML进行了一些检查,这些检查本来可以防止意外的无限递归,但是它们并不是特别好实现,即使在打算嵌套且没有无限递归危险的情况下,也会触发误报。
如果是这种情况,那么您可以使用附加的Loader
来欺骗检查,该检查将从字符串中加载组件,而不会捕获嵌套递归。