我有ListView
Items
我需要每个element
都有一个唯一的id
。
但我的项目有两个条件:
我无法使用index
,因为我的Items
可以移动(拖放),因此他们的index
会发生变化
每个Item
可以多次显示,因此这些元素没有任何属性可以帮助我区分它们。
我的想法是做那样的事情:
ListView {
id: list
property int uniqueId: 0
width: 180; height: 200
model: myModel
delegate: Text {
property int uniqueid: list.uniqueId
text: uniqueid
}
Component.onCompleted: list.uniqueId++
}
但是它不起作用,因为更新list.uniqueId
时,它会更新我的项ID和它们都具有相同的ID ( id = list.uniqueId)
我该怎么办?
答案 0 :(得分:1)
好吧,如果您严重(或不创建)绑定,它将不会自动更新:
delegate: Text {
Component.onCompleted: text = uniqueId++
}
但是,我并不认为避免这种情况会真正修复您的设计。您应该做的是将唯一的id部分一直实现回模型数据。