Hello, I encountered a "friction point", and I think a bug, in QML with the "required" attribute for properties, when used in a view delegate. Here is an example hacked from the docs :
Item { ListModel { id: myModel ListElement { type: "Dog"; age: 8; noise: "meow" } ListElement { type: "Cat"; age: 5; noise: "woof" } } component SomeDelegate: Item { required property int age property string text } Repeater { model: myModel delegate: SomeDelegate { text: model.noise } } } Which raises the error "ReferenceError: model is not defined", as documented. Is there a way around this? I feel like this should be valid, as the delegate may not exactly match the model in every case. I would prefer not having this "auto-bind" feature and keep access to model/modelData/index. But then, if I can't modify SomeDelegate (or want to keep the required property), how do I do? I tried various things to encapsulate SomeDelegate into something else, but I always get the same error. As soon as some child item has a required property, "model" is not available anymore. This is a bug, right? The following doesn't work for example (same error): Item { ListModel { id: myModel ListElement { type: "Dog"; age: 8; noise: "meow" } ListElement { type: "Cat"; age: 5; noise: "woof" } } component SomeDelegate: Item { required property int age property string text } component AnotherDelegate: Item { property int _age property string _text SomeDelegate { age: 0 text: "" } } Repeater { model: myModel delegate: AnotherDelegate { _age: model.age _text: model.noise } } } (I'm testing with qml/qmlscene, Qt 6.3.0, Qt 5.15.2) Thank you, -- Benjamin
_______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest