У меня ListView и его делегат определены в другом qml-файле.
main.qml:
import QtQuick 2.12
import QtQuick.Window 2.12
Window {
visible: true
width: 640
height: 480
ListModel {
id: listModel
ListElement {
name: "Bill Smith"
}
ListElement {
name: "John Brown"
}
ListElement {
name: "Sam Wise"
}
}
ListView {
width: 180; height: 200
property color delegateColor: "green"
model: listModel
delegate: ExternalDelegate {}
}
}
ExternalDelegate.qml:
import QtQuick 2.12
import QtQuick.Controls 2.12
ItemDelegate {
background: Rectangle {
color: ListView.view.delegateColor
}
Text {
text: model.name
}
}
Parent ListView имеет пользовательское свойство DelegateColor. Мне нужно прочитать это свойство от делегата. Но если я пытаюсь получить к нему доступ с помощью прикрепленного свойства ListView.view, он не работает. И я вижу сообщения в консоли:
qrc:/ExternalDelegate.qml:7: TypeError: Cannot read property 'delegateColor' of null
Как прочитать пользовательское свойство ListView из внешнего делегата?
Мне нужно установить это свойство в ListView (не в делегат), потому что я также хочу получить доступ к этому свойству из делегатов заголовка, нижнего колонтитула и раздела.