Как получить доступ к ролям текущего элемента из списка в QML?

Я пытаюсь получить доступ к роли из ListView в QML. По сути, в моем QML есть следующее:

ListView {
    id: myId
    model: myModel
    delegate: Item {
        Text {
            text: model.text
        }
        Text {
            text: model.moreText
        }
    }
}

myModel - это реализация QAbstractListModel. Часть QML этого компонента является повторно используемым, поэтому модель может иметь любое количество различных ролей с различными типами данных. Что я хотел бы сделать, так это привязать к значению данной роли свойства currentItem ListView. Другими словами, я Мне бы хотелось, чтобы на странице был какой-то другой Компонент , который мог бы привязать свойство к текущему выбранному элементу в ListView следующим образом:

Text {
    text: myId.currentItem.text // Or myId.currentItem.model.text (or something similar)
}

Имейте в виду, что мне нужен общий доступный вариант, так как делать это много для ряда типов моделей, и я стараюсь не писать такого рода собственный код для каждой модели и ListView.

Похоже, должно быть просто получить доступ к свойству текущего выбранного элемента, но насколько я могу судить, это невозможно. Проблема усложняется еще и тем, что модели воспринимаются по-разному, когда есть только одна роль. Под этим я подразумеваю, что иногда вы получаете доступ к своим ролям через model.roleName , тогда как когда есть только одна роль, вы используете modelData .

Если у кого-то есть предложения, я был бы очень признателен Это. Большое спасибо!

ИЗМЕНИТЬ

Я нашел это:

http://comments.gmane.org/gmane.comp.lib.qt.qml/1778

Однако это не похоже на работать на меня. Я получаю ошибки типа, когда пытаюсь использовать данные в своих сценариях QML, а приведение типов недоступно, поэтому я не уверен, что делать. Любые предложения приветствуются!

Спасибо!

Джек

20
задан Jack Benson 8 March 2011 в 11:33
поделиться